diff --git a/examples/models/models_skybox.c b/examples/models/models_skybox.c index c2849032..8d271cc0 100644 --- a/examples/models/models_skybox.c +++ b/examples/models/models_skybox.c @@ -35,6 +35,7 @@ int main(void) skybox.materials[0].shader = LoadShader("resources/shaders/glsl100/skybox.vs", "resources/shaders/glsl100/skybox.fs"); #endif SetShaderValue(skybox.materials[0].shader, GetShaderLocation(skybox.materials[0].shader, "environmentMap"), (int[1]){ MAP_CUBEMAP }, UNIFORM_INT); + SetShaderValue(skybox.materials[0].shader, GetShaderLocation(skybox.materials[0].shader, "vflipped"), (int[1]){ 1 }, UNIFORM_INT); // Load cubemap shader and setup required shader locations #if defined(PLATFORM_DESKTOP) diff --git a/examples/models/resources/shaders/glsl100/skybox.fs b/examples/models/resources/shaders/glsl100/skybox.fs index 053a2517..ca542303 100644 --- a/examples/models/resources/shaders/glsl100/skybox.fs +++ b/examples/models/resources/shaders/glsl100/skybox.fs @@ -4,23 +4,35 @@ * * Copyright (c) 2017 Victor Fisac * +* 19-Jun-2020 - modified by Giuseppe Mastrangelo (@peppemas) - VFlip Support +* **********************************************************************************************/ -#version 330 +#version 110 // Input vertex attributes (from vertex shader) in vec3 fragPosition; // Input uniform values uniform samplerCube environmentMap; +uniform bool vflipped; // Output fragment color out vec4 finalColor; +vec4 flipTextureCube(samplerCube sampler, vec3 texCoord) { + return texture(sampler, vec3(texCoord.x,-texCoord.y,texCoord.z)); +} + void main() { // Fetch color from texture map - vec3 color = texture(environmentMap, fragPosition).rgb; + vec3 color; + + if (vflipped ) + color = flipTextureCube(environmentMap, fragPosition).rgb; + else + color = texture(environmentMap, fragPosition).rgb; // Apply gamma correction color = color/(color + vec3(1.0)); diff --git a/examples/models/resources/shaders/glsl330/skybox.fs b/examples/models/resources/shaders/glsl330/skybox.fs index 053a2517..e1085bd9 100644 --- a/examples/models/resources/shaders/glsl330/skybox.fs +++ b/examples/models/resources/shaders/glsl330/skybox.fs @@ -4,6 +4,8 @@ * * Copyright (c) 2017 Victor Fisac * +* 19-Jun-2020 - modified by Giuseppe Mastrangelo (@peppemas) - VFlip Support +* **********************************************************************************************/ #version 330 @@ -13,14 +15,24 @@ in vec3 fragPosition; // Input uniform values uniform samplerCube environmentMap; +uniform bool vflipped; // Output fragment color out vec4 finalColor; +vec4 flipTextureCube(samplerCube sampler, vec3 texCoord) { + return texture(sampler, vec3(texCoord.x,-texCoord.y,texCoord.z)); +} + void main() { // Fetch color from texture map - vec3 color = texture(environmentMap, fragPosition).rgb; + vec3 color; + + if (vflipped ) + color = flipTextureCube(environmentMap, fragPosition).rgb; + else + color = texture(environmentMap, fragPosition).rgb; // Apply gamma correction color = color/(color + vec3(1.0));