i have just started learning OPENGL, i use MASM for programming.
in lesson 3, if there isn't a lightsource in the scene, how can the color be shown?
and i tried to put up a scene with a lightsource and a triangle, the glColor3x (b or f) function doesn't change the color of the triangle , it always appear gray, i don't know why.
OPENGL lesson 3
Started by supercoollee, May 07 2010 09:00 PM
3 replies to this topic
Ad:
#3 Members - Reputation: 1084
Posted 19 May 2010 - 04:01 AM
If you don't enable lighting, the "flat" colours specified by the glColour() will be used.
If you turn on lighting, then the glColor() is ignored -- the default material colour will be used instead. Hence your triangle will be drawn in white; which will end up gray after lighting.
You probably want to enable glColorMaterial which will copy colours out of the glColor() calls into the ambient/diffuse/both material colours.
If you turn on lighting, then the glColor() is ignored -- the default material colour will be used instead. Hence your triangle will be drawn in white; which will end up gray after lighting.
You probably want to enable glColorMaterial which will copy colours out of the glColor() calls into the ambient/diffuse/both material colours.
#4 Members - Reputation: 100
Posted 19 May 2010 - 08:56 PM
the problem has been solved. in order to specify color at each vertex,
glEnable(GL_COLOR_MATERIAL)
must be called.
and if no light is specified, GL uses the default lighting, that's why in NEHE's lesson3 the colors can be shown without calling lighting functions.
glEnable(GL_COLOR_MATERIAL)
must be called.
and if no light is specified, GL uses the default lighting, that's why in NEHE's lesson3 the colors can be shown without calling lighting functions.






