Pārlūkot izejas kodu

Review skybox shaders

raysan5 5 gadi atpakaļ
vecāks
revīzija
b4ff6fdde3

+ 2 - 5
examples/models/resources/shaders/glsl100/cubemap.fs

@@ -9,14 +9,11 @@
 #version 330
 
 // Input vertex attributes (from vertex shader)
-in vec3 fragPosition;
+varying vec3 fragPosition;
 
 // Input uniform values
 uniform sampler2D equirectangularMap;
 
-// Output fragment color
-out vec4 finalColor;
-
 vec2 SampleSphericalMap(vec3 v)
 {
     vec2 uv = vec2(atan(v.z, v.x), asin(v.y));
@@ -34,5 +31,5 @@ void main()
     vec3 color = texture(equirectangularMap, uv).rgb;
 
     // Calculate final fragment color
-    finalColor = vec4(color, 1.0);
+    gl_FragColor = vec4(color, 1.0);
 }

+ 2 - 2
examples/models/resources/shaders/glsl100/cubemap.vs

@@ -9,14 +9,14 @@
 #version 330
 
 // Input vertex attributes
-in vec3 vertexPosition;
+attribute vec3 vertexPosition;
 
 // Input uniform values
 uniform mat4 projection;
 uniform mat4 view;
 
 // Output vertex attributes (to fragment shader)
-out vec3 fragPosition;
+varying vec3 fragPosition;
 
 void main()
 {

+ 5 - 14
examples/models/resources/shaders/glsl100/skybox.fs

@@ -11,33 +11,24 @@
 #version 110
 
 // Input vertex attributes (from vertex shader)
-in vec3 fragPosition;
+varying 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;
+    vec3 color = { 0.0 };
 
-    if (vflipped )
-    	color = flipTextureCube(environmentMap, fragPosition).rgb;
-    else 
-    	color = texture(environmentMap, fragPosition).rgb;
+    if (vflipped) color = texture2D(environmentMap, vec3(fragPosition.x, -fragPosition.y, fragPosition.z)).rgb;
+    else color = texture2D(environmentMap, fragPosition).rgb;
 
     // 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);
+    gl_FragColor = vec4(color, 1.0);
 }

+ 3 - 9
examples/models/resources/shaders/glsl330/skybox.fs

@@ -20,19 +20,13 @@ 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;
+    vec3 color = { 0.0 };
 
-    if (vflipped )
-    	color = flipTextureCube(environmentMap, fragPosition).rgb;
-    else 
-    	color = texture(environmentMap, fragPosition).rgb;
+    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));