32 lines
772 B
GLSL
32 lines
772 B
GLSL
#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);
|
|
}
|