博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NeHe的opengl教程delphi版(3)----着色 (转)
阅读量:2501 次
发布时间:2019-05-11

本文共 1562 字,大约阅读时间需要 5 分钟。

NeHe的opengl教程delphi版(3)----着色 (转)[@more@]

继续

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

继续在上节的glDraw上修改。

Procedure glDraw();

Begin
  glClear(GL_COLOR_BUFFER_BIT Or GL_DEPTH_BUFFER_BIT); // 清除屏幕和深度缓存
  glLoadntity();  // 重置当前的模型观察矩阵

  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;

运行一下看看效果

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10748419/viewspace-960902/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10748419/viewspace-960902/

你可能感兴趣的文章
绘制文本
查看>>
多表查询SQL99
查看>>
主元素问题(Java)
查看>>
不同版本的Eclipse安装SVN插件
查看>>
Windows下的cmd命令行中设置环境编码
查看>>
POJ 3557 Map Generator
查看>>
转:Linux环境下段错误的产生原因及调试方法小结
查看>>
Coursera, Deep Learning 1, Neural Networks and Deep Learning - week1, Introduction to deep learning
查看>>
《mysql 必知必会》 笔记(六)
查看>>
Python 函数
查看>>
EasyUI表格datagrid合并行单元格
查看>>
云时代架构阅读笔记一——Java性能优化(一)
查看>>
7.15-7.21第三周周进度报告
查看>>
(hdu step 8.1.2)Train Problem I(站的基本应用——推断一个序列经过栈后是否可以得到第二个序列)...
查看>>
aptitude约等于apt-get的工具
查看>>
PHP反序列化漏洞
查看>>
红尘来去一场梦
查看>>
cf16E Fish(状压DP)
查看>>
jquery新窗口打开链接
查看>>
学习的本质
查看>>