void main() { gl_TexCoord[0] = gl_MultiTexCoord0; gl_Position = ftransform(); } uniform sampler2D opacityMap; uniform sampler2D source0, source1, source2, source3; void main() { opacity = texture2D(opacityMap, gl_TexCoord[0].st); texel0 = texture2D(source0, gl_TexCoord[0].st); texel1 = texture2D(source1, gl_TexCoord[0].st); texel2 = texture2D(source2, gl_TexCoord[0].st); texel3 = texture2D(source3, gl_TexCoord[0].st); gl_FragColor = texel0.rgb * opacity.r + texel1.rgb * opacity.g + texel2.rgb * opacity.b + texel3.rgb * opacity.a; }