OpenGL学习笔记(四)

来源:互联网 发布:java单例模式和同步 编辑:程序博客网 时间:2024/05/17 06:36

颜色

OpenGL通过分别指定红、绿、蓝成分的强度来指定一种特定的颜色。

    void glColor<x><t>(red,green,blue,alpha);

其中<x>表示参数的数量,<t>表示参数的数据类型。注意,OpenGL内部是用浮点值来表示颜色值的。

 

颜色立方体

由于一种颜色是通过3个正的颜色值所指定的,因此可以对所有可用的颜色进行建模,创建一个立方体,称为RGB颜色空间。

 

着色

glColor函数设置当前颜色,用于这条命令之后的所有顶点的绘制。如果我们为一个图元的每个顶点都指定了不同的颜色,则该图元内部的颜色应该是什么样的呢?

以点为例点只有一个顶点,不管为这个顶点指定什么颜色,这个点的最终颜色就是这种颜色。

以直线为例直线具有两个顶点,每个顶点可以设置为不同的颜色,那么这条直线的颜色取决于着色(shading)模式。着色模式有2种:

    1.       单调着色单调着色表示在图元的内部不进行着色计算。一般而言,使用单调着色,图元的内部颜色就是最后一个顶点所指定的颜色。唯一的例外是GL_POLYGON图元,它的内部颜色是第一个顶点的颜色。

    2.       平滑着色可以简单地定义为一种颜色到下一种颜色的平滑过渡。平滑着色使直线的颜色从一个颜色点到另一个颜色点均匀地发生变化。

以多边形为例这个平滑着色相对来说复杂一些,可以用颜色立方体中的一个平面来表示。下面表示一个三角形:

注意图中的三角形并不是所要绘制的图元形状

 

设置着色模式

    void glShadeModel(GLenum mode);

参数mode可以是GL_SMOOTH(默认值)GL_FLAT

GL_SMOOTH-即平滑着色

GL_FLAT-即单调着色
原创粉丝点击