还记得在MFC中绘制时,需要指定pen和brush。
到了OpenGL的恒定着色中,发现有个颜色指定函数glColor*,可以定义顶点的颜色,可是当绘制一些多边形的时候,需要指定很多顶点,如果我为每个顶点指定一个颜色,那么最后的多边形到底显示什么颜色呢?很有趣的一个问题。
上机尝试一下,就可以知道答案了。
原来,最后图元显示的颜色,跟“最后”一个顶点的颜色设置有关。
举例来说:
glBegin(GL_TRIANGLES);
glColor3f (1.0, 1.0, 1.0); // 指定白色 (1)
glVertex2f ( 10, 10); // 第一个顶点
glColor3f (1.0, 0.0, 0.0); // 指定红色 (2)
glVertex2f ( 40, 40); // 第二个顶点
glColor3f (0.0, 1.0, 0.0); // 指定绿色 (3)
glVertex2f ( 40, 20); // 第三个顶点
glEnd();
此时会发现,三角形显示为绿色,因为最后一个顶点设置为绿色。
若将第(3)句删掉,则显示为红色;若将第(2)句删掉,显示为白色。
评论