设置着色模式
着色模式(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 - 清风 - 清风](http://img3.ph.126.net/7Ji-5jofHn2ip7cFg_olgQ==/6597195110982461783.jpg)
图1 平滑着色的例子
给定三个顶点的颜色值顺序为红、绿、蓝色。
(2)、单调着色
gl.glShadeModel(GL10. GL_FLAT)
单调着色即GL_FLAT,单调着色表示图元在内部不进行计算。一般而言,使用单调着色,图元的内部颜色就是最后一个项点所指定的颜色。唯一例外的是GL_POLYGON( 多边形 )图元,它的内部颜色是第一个顶点的颜色。
一个使用单调着色的例子,如图2所示。
![着色模式GL_SMOOTH与GL_FLAT - 清风 - 清风](http://img7.ph.126.net/jwWBfoFF1yGqfFndNnEX7w==/6597216001703392917.jpg)
图2 单调着色的例子
给定三个顶点的颜色值顺序同样为红、绿、蓝色。