From 0f10c44578c4500b770589e34cd8404bee4e8cba Mon Sep 17 00:00:00 2001 From: Jeffery Myers Date: Sun, 28 Feb 2021 14:31:25 -0800 Subject: Fixes gl state after HDR texture functions. (#1621) Updates skybox demo to show how to do both HDR and non HDR skyboxes Co-authored-by: Jeffery Myers --- examples/models/resources/shaders/glsl100/skybox.fs | 9 ++++++--- examples/models/resources/shaders/glsl330/skybox.fs | 9 ++++++--- examples/models/resources/skybox.png | Bin 0 -> 10992 bytes 3 files changed, 12 insertions(+), 6 deletions(-) create mode 100644 examples/models/resources/skybox.png (limited to 'examples/models/resources') diff --git a/examples/models/resources/shaders/glsl100/skybox.fs b/examples/models/resources/shaders/glsl100/skybox.fs index 1269a96d..4aa4ec9c 100644 --- a/examples/models/resources/shaders/glsl100/skybox.fs +++ b/examples/models/resources/shaders/glsl100/skybox.fs @@ -8,6 +8,7 @@ varying vec3 fragPosition; // Input uniform values uniform samplerCube environmentMap; uniform bool vflipped; +uniform bool doGamma; void main() { @@ -19,9 +20,11 @@ void main() vec3 color = vec3(texelColor.x, texelColor.y, texelColor.z); - // Apply gamma correction - color = color/(color + vec3(1.0)); - color = pow(color, vec3(1.0/2.2)); + if (doGamma)// Apply gamma correction + { + color = color/(color + vec3(1.0)); + color = pow(color, vec3(1.0/2.2)); + } // Calculate final fragment color gl_FragColor = vec4(color, 1.0); diff --git a/examples/models/resources/shaders/glsl330/skybox.fs b/examples/models/resources/shaders/glsl330/skybox.fs index dd8078e0..800c1c6f 100644 --- a/examples/models/resources/shaders/glsl330/skybox.fs +++ b/examples/models/resources/shaders/glsl330/skybox.fs @@ -16,6 +16,7 @@ in vec3 fragPosition; // Input uniform values uniform samplerCube environmentMap; uniform bool vflipped; +uniform bool doGamma; // Output fragment color out vec4 finalColor; @@ -28,9 +29,11 @@ void main() if (vflipped) color = texture(environmentMap, vec3(fragPosition.x, -fragPosition.y, fragPosition.z)).rgb; else color = texture(environmentMap, fragPosition).rgb; - // Apply gamma correction - color = color/(color + vec3(1.0)); - color = pow(color, vec3(1.0/2.2)); + if (doGamma)// Apply gamma correction + { + color = color/(color + vec3(1.0)); + color = pow(color, vec3(1.0/2.2)); + } // Calculate final fragment color finalColor = vec4(color, 1.0); diff --git a/examples/models/resources/skybox.png b/examples/models/resources/skybox.png new file mode 100644 index 00000000..36a79b2d Binary files /dev/null and b/examples/models/resources/skybox.png differ -- cgit v1.2.3