diff options
author | David Thompson <dthompson2@worcester.edu> | 2021-10-08 20:44:28 -0400 |
---|---|---|
committer | David Thompson <dthompson2@worcester.edu> | 2021-10-08 20:44:28 -0400 |
commit | 53429f77e3fcfaa4fdc3d95b840b6728b4452f72 (patch) | |
tree | e5766772d1deac156871ce5ad119f8c3ab260243 | |
parent | c22eda980c51db210bbe73f500e9f3fc3052a5f3 (diff) |
graphics: Fix compatibility issue with cube maps in phong/pbr shaders.
-rw-r--r-- | data/shaders/pbr-frag.glsl | 5 | ||||
-rw-r--r-- | data/shaders/phong-frag.glsl | 5 |
2 files changed, 8 insertions, 2 deletions
diff --git a/data/shaders/pbr-frag.glsl b/data/shaders/pbr-frag.glsl index a211096..0986840 100644 --- a/data/shaders/pbr-frag.glsl +++ b/data/shaders/pbr-frag.glsl @@ -66,6 +66,9 @@ const float GAMMA = 2.2; vec4 texture(sampler2D tex, vec2 coord) { return texture2D(tex, coord); } +vec4 texture(samplerCube tex, vec3 coord) { + return textureCube(tex, coord); +} #endif float posDot(vec3 v1, vec3 v2) { @@ -364,7 +367,7 @@ void main(void) { // // TODO: Use fancy PBR equations instead of these basic ones. float fresnel = pow(1.0 - clamp(dot(viewDirection, normal), 0.0, 1.0), 5); - vec3 ambientDiffuse = textureCube(skybox, normal).rgb; + vec3 ambientDiffuse = texture(skybox, normal).rgb; vec3 ambientSpecular = textureLod(skybox, reflection, roughness * 7.0).rgb; color += (ambientDiffuse * albedo + ambientSpecular * fresnel) * ambientOcclusion; // Apply Reinhard tone mapping to convert our high dynamic range diff --git a/data/shaders/phong-frag.glsl b/data/shaders/phong-frag.glsl index c1a19c1..2d70fda 100644 --- a/data/shaders/phong-frag.glsl +++ b/data/shaders/phong-frag.glsl @@ -50,6 +50,9 @@ const float GAMMA = 2.2; vec4 texture(sampler2D tex, vec2 coord) { return texture2D(tex, coord); } +vec4 texture(samplerCube tex, vec3 coord) { + return textureCube(tex, coord); +} #endif vec3 gammaCorrect(vec3 color) { @@ -161,7 +164,7 @@ void main() { // Apply image based ambient lighting. float fresnel = pow(1.0 - clamp(dot(viewDir, normal), 0.0, 1.0), 5); float roughness = 1.0 - (material.shininess / 1000.0); - vec3 ambientDiffuse = textureCube(skybox, normal).rgb * diffuseColor; + vec3 ambientDiffuse = texture(skybox, normal).rgb * diffuseColor; vec3 ambientSpecular = textureLod(skybox, reflection, roughness * 7.0).rgb * fresnel; vec3 ambientColor = (ambientDiffuse + ambientSpecular) * ambientOcclusion; color += ambientColor; |