环境光分量
当一个环境光为r,g,b,a
物体的反射系数为mr,mg,mb,ma
时,那么看到的光就为:
r*mr,g*mg,b*mb,a*ma
环境光:从四面八方射进来的光
如下面,设置环境光:
glLightfv(GL_LIGHT0,GL_AMBIENT,whiteColor);
设置反射系数:
glMaterialfy(GL_FRONT,GL_AMBIENT,ambientMat);
伪代码如下图:
void Draw() {
glClearColor(30.0f / 255.0f, 30.0f / 255.0f, 30.0f / 255.0f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
float lightPos[] = { 0.0f,1.0f,0.0f,0.0f };
glLightfv(GL_LIGHT0, GL_POSITION, lightPos);
float whiteColor[] = { 1.0f,1.0f,1.0f,1.0f };
float ambientMat[] = { 0.07f,0.07f,0.07f,1.0f };
glLightfv(GL_LIGHT0, GL_AMBIENT, whiteColor);
glMaterialfv(GL_FRONT, GL_AMBIENT, ambientMat);
glBegin(GL_QUADS);
glColor4ub(255, 255, 255, 255);
glVertex3f(-0.5f, -0.2f, -0.5f);
glVertex3f(0.5f, -0.2f, -0.5f);
glVertex3f(0.5f, -0.2f, -1.0f);
glVertex3f(-0.5f, -0.2f, -1.0f);
glEnd();
}