glColor3f( 0.0, 0.0, 1.0 );
蓝色。
glVertex3f( 1.0, -1.0, 0.0 );
右下顶点。
glEnd();
glEnd()出现后,三角形将被填充。但是因为每个顶点有不同的颜色,因此看起来颜色从每
个角喷出,并刚好在三角形的中心汇合,三种颜色相互混合。这就是平滑着色。
glTranslatef( 3.0, 0.0, 0.0 );
glColor3f( 0.5, 0.5, 1.0 );
一次性将颜色设置为蓝色。
现在我们绘制一个单调着色——蓝色的正方形。最重要的是要记住,设置当前色之后绘制的
所有东东都是当前色的。以后您所创建的每个工程都要使用颜色。即便是在完全采用纹理贴
图的时候,glColor3f 仍旧可以用来调节纹理的色调。等等...,以后再说吧。
我们必须要做的事只需将颜色一次性的设为我们想采用的颜色(本例采用蓝色),然后绘制
场景。每个顶点都是蓝色的,因为我们没有告诉 OpenGL 要改变顶点的颜色。最后的结果是.....
全蓝色的正方形。再说一遍,顺时针绘制的正方形意味着我们所看见的是四边形的背面。
glBegin( GL_QUADS );
glVertex3f( -1.0, 1.0, 0.0 );
glVertex3f( 1.0, 1.0, 0.0 );
glVertex3f( 1.0, -1.0, 0.0 );
glVertex3f( -1.0, -1.0, 0.0 );
glEnd();
}
在这一课中,我试着尽量详细的解释如何为您的 OpenGL 多边形添加单调和平滑的着色效果
的步骤。改改代码中的红绿蓝分量值,看看最后有什么样的结果。
Lesson 4. 旋转
上一课中我教给您三角形和四边形的着色。这一课我将教您如何将这些彩色对象绕着坐
标轴旋转。
其实只需在上节课的代码上增加几行就可以了。
我们将在 NeHeWidget 类中增加两个变量来控制这两个对象的旋转。它们是浮点类型的
变量,使得我们能够非常精确地旋转对象。浮点数包含小数位置,这意味着我们无需使用 1、
2、3...的角度。你会发现浮点数是 OpenGL 编程的基础。新变量中叫做 rTri 的用来旋转三角
形,rQuad 旋转四边形。
NeHeWidget 类 (由 nehewidget.h 展开。)
protected:
bool fullscreen;
GLfloat rTri;
GLfloat rQuad;