首 页 | 精品电影 | 音乐天堂 | 在线游戏 | Flash MTV | 三湘书屋 | 幽默笑话 | 三湘图库 | 美女写真 | IT知识库 | QQ贴图 | 加入书签

网页制作网络编程图形图象操作系统冲浪宝典软件教学网络安全认证考试通信技术电子商务业内动态书籍教程原码

最近更新 文章分类 多媒体类 精品软件

本站搜索:
您的位置:三湘时空 -> IT知识库 -> 文章分类 -> Delphi -> NeHe的opengl教程delphi版(3)----着色
NeHe的opengl教程delphi版(3)----着色


文章类别:Delphi 来源: 作者: 发表日期:2006-2-4 字体:[ ]

小游戏 | 在线影院 | 幽默笑话 | 源码下载 | Flash MTV | 音乐试听 | 书屋 | 美女写真

 

继续

上一节中我教给您三角形和四边形的绘制方法。这一节将教您给三角形和四边形添加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;

上一篇:NeHe的opengl教程delphi版(1)----基本框架 下一篇:异类的屏幕保护
本栏目热门文章
·Delphi工具—反编译Delphi(三) 2006-2-4
·Delphi工具—反编译Delphi(二) 2006-2-4
·Delphi工具——反编译Delphi(一) 2006-2-4
·用FASTREPORT实现WEB应用中自定义报表 2006-2-4
·Delphi中ScriptControl的高级应用(一) 2006-2-4
·利用内存映射文件扩充程序可用的内存 2006-2-4
·QQ聊天记录器演示程序 2006-2-4
·Delphi与DirectShow&DSPack/在 2006-2-4
·UltraEdit也支持Delphi语法高亮 2006-2-4
·DirectShow之接口实战篇(二) 2006-2-4
新近更新文章
·BPCS系统现金流量分析工具开发日志 2006-2-4
·程序间相互通讯问题的解决 2006-2-4
·如何获取本地HTML文件的标题,超级链接 2006-2-4
·建立自己的csdn知识管理库(1) 2006-2-4
·使用Delphi开发多媒体播放音轨问题的FAQ(原创) 2006-2-4
·监视资源管理器的文件变化 2006-2-4
·实现在virtualStringtree中编辑的标准步骤 2006-2-4
·WINDOWS编程技巧之DELPHI篇 2006-2-4
·DELPHI面向对象支持特点--保护级类成员的应用 2006-2-4
·取Run下所有值(原创) 2006-2-4
首 页 | 软件发布 | 广告联系 | 下载帮助 | 意见反馈 | 网站地图
  CopyRight? 2002-2004 WWW.SXSKY.NET? All Rights Reserved
三湘时空 站长QQ:82675303 Email: