2011-04-06 wcdj
给三角形和四边形添加2种不同类型的着色方法。
(1) 使用单调着色(Flat coloring)给四边形涂上固定的一种颜色。
(2) 使用平滑着色(Smooth coloring)将三角形的三个顶点的不同颜色混合在一起,创建漂亮的色彩混合。
注意:
最重要的是要记住,设置当前色之后绘制的所有东西都是当前色的。以后所创建的每个工程都要使用颜色,即便是在完全采用纹理贴图的时候,glColor3f仍旧可以用来调节纹理的色调。
int DrawGLScene(GLvoid)// 从这里开始进行所有的绘制 { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);// 清除屏幕和深度缓存 glLoadIdentity();// 重置当前的模型观察矩阵 /*******************************************************/ // 增加新的物体 glTranslatef(-1.5f,0.0f,-6.0f);// 左移1.5单位,并移入屏幕6.0 glBegin(GL_TRIANGLES);// 绘制三角形 glColor3f(1.0f,0.0f,0.0f);// 设置当前色为红色 glVertex3f( 0.0f, 1.0f, 0.0f);// 上顶点 glColor3f(0.0f,1.0f,0.0f);// 设置当前色为绿色 glVertex3f(-1.0f,-1.0f, 0.0f);// 左下 glColor3f(0.0f,0.0f,1.0f);// 设置当前色为蓝色 glVertex3f( 1.0f,-1.0f, 0.0f);// 右下 glEnd();// 三角形绘制结束 glTranslatef(3.0f,0.0f,0.0f);// 右移3单位 glBegin(GL_QUADS);// 绘制正方形 glColor3f(0.5f,0.5f,1.0f);// 一次性将当前色设置为蓝色 glVertex3f(-1.0f, 1.0f, 0.0f);// 左上 glVertex3f( 1.0f, 1.0f, 0.0f);// 右上 glVertex3f( 1.0f,-1.0f, 0.0f);// 右下 glVertex3f(-1.0f,-1.0f, 0.0f);// 左下 glEnd();// 正方形绘制结束 /*******************************************************/ return TRUE; }
参考 :
http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=03