uniform sampler2D opacityMap; uniform sampler2D source0; uniform sampler2D source1; uniform sampler2D source2; uniform sampler2D source3; void main() { vec4 opacity = texture2D(opacityMap, gl_TexCoord[0].st); vec4 texel0 = texture2D(source0, gl_TexCoord[0].st); vec4 texel1 = texture2D(source1, gl_TexCoord[0].st); vec4 texel2 = texture2D(source2, gl_TexCoord[0].st); vec4 texel3 = texture2D(source3, gl_TexCoord[0].st); //Combine texel colours gl_FragColor = vec4(opacity.r * texel0.rgba + opacity.g * texel1.rgba + opacity.b * texel2.rgba + opacity.a * texel3.rgba); }