着色模式

来源:互联网 发布:栅格数据重采样 编辑:程序博客网 时间:2024/04/30 11:46

设置着色模式

着色模式(glShadeModel)实际上是解决实心图形内部空间颜色填充的问题。默认情况下OpenGL是采用渐变着色模式(采用GL_SMOOTH进行设置),若线段的两个端点颜色设置不同,在GL_SMOOTH模式下,线段中间的颜色在两端点之间进行平稳过渡。启用渐变着色模式采用下面的命令:glShadeModel(GL_SMOOTH)。当然我们也可以采用数学方法,完全按照自己的意愿进行颜色渐变。

与之相对的是单颜色着色模式(采用GL_FLAT进行设置)。在这种模式下,图形内部颜色填充采用的是最后一个顶点的颜色。启用单颜色着色模式采用命令:glShadeModel(GL_FLAT)。但是若所有的顶点颜色相同,GL_SMOOTH、GL_FLAT两种模式产生的效果是没有任何差别的。

下面的图形中的两条线,从上到下分别采用了glShadeModel(GL_SMOOTH)、glShadeModel(GL_FLAT)进行线段内部着色。

 

两种着色模式:平滑着色与单调着色

(1)平滑着色

gl.glShadeModel(GL10.GL_SMOOTH)

平滑着色可以实现一种颜色到另一种颜色的平滑渐变。

一个使用平滑着色的例子,如图1所示。

着色模式GL_SMOOTH与GL_FLAT - 清风 - 清风

 

图1 平滑着色的例子

给定三个顶点的颜色值顺序为红、绿、蓝色。

(2)、单调着色

gl.glShadeModel(GL10. GL_FLAT)

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

一个使用单调着色的例子,如图2所示。

着色模式GL_SMOOTH与GL_FLAT - 清风 - 清风

 

图2 单调着色的例子

给定三个顶点的颜色值顺序同样为红、绿、蓝色。

原创粉丝点击