#version 100 precision mediump float; // Input vertex attributes (from vertex shader) varying vec3 fragPosition; // Input uniform values uniform samplerCube environmentMap; uniform bool vflipped; uniform bool doGamma; void main() { // Fetch color from texture map vec4 texelColor = vec4(0.0); if (vflipped) texelColor = textureCube(environmentMap, vec3(fragPosition.x, -fragPosition.y, fragPosition.z)); else texelColor = textureCube(environmentMap, fragPosition); vec3 color = vec3(texelColor.x, texelColor.y, texelColor.z); 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); }