Howdy all
I recently moved from using a Radeon 9600 to a GeForce 6800, and this seems to have uncovered a strange bug in my code (It also appears when using Mesa).
It seems that when I specify the ambient, diffuse or specular colours using glMaterialfv(), the colour values passed in are clamped to be either 0 or 1.
So for instance, passing in [ 0, 0, 0, 0 ] works as expected, but any non-zero value behaves as though it were 1.0, so [ 0.1, 0, 0, 0 ] is indistinguishable from [ 1, 0, 0, 0 ].
The emissive colour does not display this behaviour.
Also the only active light has it’s ambient, diffuse and specular colours all set to pure white.
Is there some OpenGL state flag that will cause this behaviour? Are ATI’s drivers just more permissive/buggy than nVidia’s?
Cheers in advance.
edit: I should clarify that it’s only the RGB values that are clamped, alpha works as expected