上一课中我教给您三角形和四边形的绘制方法。这一课我将教您给三角形和四边形添加两种不同类型的着色方法。使用单调着色(Flat coloring)给四边形涂上固定的一种颜色。使用平滑着色(Smooth coloring)将三角形的三个顶点的不同颜色混合在一起,创建漂亮的色彩混合。
我们只要修改第二课中的NeHeWidget类中的paintGL()函数就可以了。
nehewidget.cpp
/*NeHeWidget类
由nehewidget.cpp 展开。*/
void NeHeWidget::paintGL()
{
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
glLoadIdentity();
glTranslatef( -1.5, 0.0, -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 );
/*蓝色。*/
glColor3f( 0.0, 0.0, 1.0 );
/*右下顶点。*/
glVertex3f( 1.0, -1.0, 0.0 );
/*glEnd()出现后,三角形将被填充。但是因为每个顶点有不同的颜色,因此
看起来颜色从每个角喷出,并刚好在三角形的中心汇合,三种颜色相互混合。这
就是平滑着色。*/
glEnd();
glTranslatef( 3.0, 0.0, 0.0 );
/*一次性将颜色设置为蓝色。
现在我们绘制一个单调着色——蓝色的正方形。最重要的是要记住,设置当前色
之后绘制的所有东东都是当前色的。以后您所创建的每个工程都要使用颜色。即
便是在完全采用纹理贴图的时候,glColor3f仍旧可以用来调节纹理的色调。等
等...,以后再说吧。
我们必须要做的事只需将颜色一次性的设为我们想采用的颜色(本例采用蓝
色),然后绘制场景。每个顶点都是蓝色的,因为我们没有告诉OpenGL要改变
顶点的颜色。最后的结果是.....全蓝色的正方形。再说一遍,顺时针绘制的正方
形意味着我们所看见的是四边形的背面。*/
glColor3f( 0.5, 0.5, 1.0 );
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多边形添加单调和平滑的着色效果的步骤。改改代码中的红绿蓝分量值,看看最后有什么样的结果。
- 大小: 12.1 KB
分享到:
相关推荐
第3课:命令格式的分类、命令行的编辑与窗口的美化 第4课:创建目录之MD命令的详解 第5课:文件管理之删除目录(RD)命令的详解 第6课:显示文件目录之DIR命令的讲解 第7课:文件管理之文件的复制--copy命令 第8课:...
C# Nehe OpenGL 第三课 添加颜色
第三课: 讲述MFC AppWizard的原理与MFC程序框架的剖析。AppWizard是一个原代码生成工具,是计算机辅助程序设计软件,Winmain在MFC程序中是如何从源程序中被隐藏的,theApp全局变量是如何被分配的,MFC框架中的几个类...
第01课 危险来临 入侵危机 "1. 认识编程软件 2. 添加、删除角色 3. 控制角色的简单移动" 1.外观指令:角色切换 2.运动指令:角色移动 3.控制指令:重复移动 第02课 协助逃脱 "1. 广播的基本应用 2. 角色说话内容的...
Udemy_SL_MaterialDesign Udemy的SlideNerd课程 第一次提交: 第1课:设置材料设计第2课:在材料设计中使用颜色第3课:向您的应用程序添加工具栏讲座4:自定义工具栏外观
五、成果篮: 第3课 填充颜色 教学目标:学习画彩色的图形。 教学时间:1课时 教学过程: 一、画气球、太阳 1、选用"椭圆"工具中的填充模式,可以画出彩色的气球和太阳。 2、用同样的方法画出另外两只气球。 3、...
LearningWebGPU 教程 ... glsl-spirv 分支使用 GLSL->SPIR-V ...第 2 课 - 添加颜色 - 完结 第 3 课 - 动起来 [教程] 第 4 课 - 真正的 3D 物体 [教程] 第 5 课 - 引入纹理 [教程] 第 6 课 - 键盘输入和纹理过滤 [教程]
3.添加颜色: 作为第二课的扩展,我将叫你如何使用颜色。你将理解两种着色模式,在左图中,三角形用的是光滑着色,四边形用的是平面着色。 注意三角形上的颜色是如何混合的。 颜色为OpenGlL 工程增加很多。通过理解...
添加颜色: 作为第二课的扩展,我将叫你如何使用颜色。你将理解两种着色模式,在左图中,三角形用的是光滑着色,四边形用的是平面着色。 注意三角形上的颜色是如何混合的。 颜色为OpenGlL 工程增加很多。通过理解...
完整word版,计算机应用基础第EXCEl作业操作题 编辑整理: 尊敬的读者朋友们:... (精校版)计算机应用基础第EXCEl作业操作题全文共4页,当前为第3页。 (精校版)计算机应用基础第EXCEl作业操作题全文共4页,当前为第4页。
第3课 Delphi对窗口与界面的设计应用 实例8 设计一个透明窗体 实例9 设计可以弹出系统时间对话框的程序 实例10 设计可显示圆形的程序 实例11 设计具有折叠功能的树状列表 实例12 制作可以浏览照片的程序 实例13 设计...
然后再依次复 制粘贴第二页、第三页...;对图形可以单复制,并在幻灯片中进行位置和大小的调整; 图表、公式等也依此法复制到演示文稿中;最后对建好的演示文稿进行总体调整,平衡 文字量和文字的大小。 2) 幻灯片的...
第三步 ** 跟着** 在“将乌龟的笔颜色设置为▢⇠”内部,选择“▢”,然后选择红色。 现在添加一个“ myTurtle前进25个步骤”块以查看新的红色轨迹。 turtle.showTurtle() turtle.setPenColor
结合两节课学过的知识,修改程序2,使之实现如下功能: 提示: color()函数——设置颜色 write()函数——设置字体字号 第2课时 控制"海龟"移动 一、教学目标 1、了解常量、变量、表达式、赋值; 2、掌握变量的命名、...
结合两节课学过的知识,修改程序2,使之实现如下功能: 提示: color()函数——设置颜色 write()函数——设置字体字号 第2课时 控制"海龟"移动 一、教学目标 1、了解常量、变量、表达式、赋值; 2、掌握变量的命名、...
第三部分为图形动画篇(第12~15章),介绍目前最常用的网页制作辅助工具Fireworks 8和Flash 8,并给出一些制作实例。 网页设计是一门实践性很强的课程,实践是学好本课程的重要环节。为此我们编写了与其配套的...
Me.Caption = "工控第一课 研华PCI-1761接点检测" Label1.Caption = "151" End Sub Private Sub Command1_Click() '十进制转二进制 If Command3.Caption = "停止演示" Then Command3_Click '如果随机演示正在进行...