#version 330 #extension GL_ARB_separate_shader_objects : require #include #include uniform sampler2D Sampler0; layout(location = 0) in vec2 texCoord0; #ifndef OIT_ALPHA_ONLY layout(location = 0) out vec4 fragColor; #endif vec4 calculateFinalColor(vec4 color) { color *= ColorModulator; #ifdef OIT_ACCUMULATE color = sampleColorForAccumulation(color); #endif return color; } void main() { vec4 color = texture(Sampler0, texCoord0); if (color.a == 0.0) { discard; } #ifdef OIT_ALPHA_ONLY executeAlphaOnlyPhase(gl_FragCoord.z, color.a); #else fragColor = calculateFinalColor(color); #endif }