NeHe的opengl教程delphi版(3)----着色

王朝delphi·作者佚名  2006-01-08
宽屏版  字体: |||超大  

继续

上一节中我教给您三角形和四边形的绘制方法。这一节将教您给三角形和四边形添加2种不同类型的着色方法。使用Flat coloring(单调着色)给四边形涂上固定的一种颜色。使用Smooth coloring(平滑着色)将三角形的三个顶点的不同颜色混合在一起,创建漂亮的色彩混合。

继续在上节的glDraw上修改。

Procedure glDraw();

Begin

glClear(GL_COLOR_BUFFER_BIT Or GL_DEPTH_BUFFER_BIT); // 清除屏幕和深度缓存

glLoadIdentity(); // 重置当前的模型观察矩阵

glTranslatef(-1.5, 0.0, -6.0); // 左移 1.5 单位,并移入屏幕 6.0

glBegin(GL_TRIANGLES); // 绘制三角形

//glColor3f(r,g,b)。括号中的三个参数依次是红、绿、蓝三色分量。

//取值范围可以从0,0到1.0。类似于以前所讲的清除屏幕背景命令。

//我们将颜色设为红色(纯红色,无绿色,无蓝色)。

//接下来的一行代码设置三角形的第一个顶点(三角形的上顶点),

//并使用当前颜色(红色)来绘制。从现在开始所有的绘制的对象的颜色都是红色,

//直到我们将红色改变成别的什么颜色。

glColor3f(1.0, 0.0, 0.0); //设置当前色为红色

glVertex3f(0.0, 1.0, 0.0); // 上顶点

//第一个红色顶点已经设置完毕。

//接下来我们设置第二个绿色顶点。三角形的左下顶点被设为绿色。

glColor3f(0.0, 1.0, 0.0); //设置当前色为绿色

glVertex3f(-1.0, -1.0, 0.0); // 左下

//三角形的右下顶点。将颜色设为蓝色

//glEnd()出现后,三角形将被填充。

//但是因为每个顶点有不同的颜色,因此看起来颜色从每个角喷出,

//并刚好在三角形的中心汇合,三种颜色相互混合。这就是平滑着色。

glColor3f(0.0, 0.0, 1.0); //设置当前色为蓝色

glVertex3f(1.0, -1.0, 0.0); // 右下

glEnd(); // 三角形绘制结束

glTranslatef(3.0, 0.0, 0.0); // 右移3单位

//现在我们绘制一个单调着色-紫色的正方形。

//最重要的是要记住,设置当前色之后绘制的所有东东都是当前色的。

//以后您所创建的每个工程都要使用颜色。

//即便是在完全采用纹理贴图的时候,

//glColor3f仍旧可以用来调节纹理的色调。

//等等....,以后再说吧。

//(呵呵,原书是蓝色,但是我喜欢紫色)

glBegin(GL_QUADS); // 绘制正方形

glColor3f(0.6, 0.2, 2.0); //设置当前色为紫色

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(); // 正方形绘制结束

End;

运行一下看看效果

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有