Hi everyone!
I want to write a simple fragment shader which multiplies an extra alpha value to each drawn object in a collection, no matter the type of the object. However, as I am new to shaders, my solution is rather clumsy:
Code :uniform sampler2D testTexture; // alpha value to use uniform float alpha; // to decide where the color of the fragment comes from uniform int textured = 0; void main(void) { if (gl_TexCoord[0].s < 0.0 || gl_TexCoord[0].s > 1.0) discard; if (gl_TexCoord[0].t < 0.0 || gl_TexCoord[0].t > 1.0) discard; if (textured > 0) { gl_FragColor = texture2D(testTexture, gl_TexCoord[0].xy); gl_FragColor = gl_FragColor * alpha; } else { gl_FragColor = gl_Color * alpha; } }
As there seem to be two sources for the color (textured and gl_Color, depending on the renderable object) and I do not know how to automatically tell which one to take, I have this extra field "textured" which I have to set manually for each object.
Is there a way to automatically identify the correct source of the fragment color?
Thanks a lot!