在OpenGL的绘制中,我们一般会给绘制物体加上颜色,根据场景的不同,有几下几种方法:
1. 无光照
2.有光照在无光照模型下,是最简单的一种情形,在这种情况下,直接使用glColor*函数来设置每个顶点的颜色,这种方法简单直接。
在有光照的模型下,模型的颜色受以下几方面的影响:光源的颜色属性 ,以及通过glMaterial*()设置的材质的属性。同时glColor*()命令将失去作用。但是我们可以用glEnable(GL_COLOR_MATERIAL)
如果调用了glEnable(GL_COLOR_MATERIAL),那么就会使光照模型中的几种光根据glColor*()中的指定确定颜色:void glColorMaterial(GLenum face, GLenum mode);其中face的取值GL_FRONT, GL_BACK与GL_FRONT_AND_BACK(默认值)mode的取值为GL_EMISSION, GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR与GL_AMBIENT_AND_DIFFUSE(默认值)
例如:
glEnable(GL_COLOR_MATERIAL); glColorMaterial(GL_FRONT, GL_DIFFUSE); /* now glColor* changes diffuse reflection */ glColor3f(0.