#version 330 in vec3 texCoord0; out vec4 fragColor; uniform samplerCube skyboxTexture; // Gamma correction uniform float gamma = 2.2; uniform float gammaStrength; vec3 gammaCorrect(const in vec3 color) { return pow(color, vec3(1.0 / gamma)); } void main() { vec4 baseColor = texture(skyboxTexture, texCoord0); vec4 gammaColor = vec4(gammaCorrect(baseColor.rgb), 1.0); // This is an odd way to enable or not gamma correction, // but this is a way to avoid branching until we can generate shaders fragColor = mix(baseColor, gammaColor, gammaStrength); }