summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--examples/models/models_skybox.c1
-rw-r--r--examples/models/resources/shaders/glsl100/skybox.fs16
-rw-r--r--examples/models/resources/shaders/glsl330/skybox.fs14
3 files changed, 28 insertions, 3 deletions
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));