Ogre有三种着色方式,分别为shading flat/gouraud/phong。当动态光照打开时,该选项的作用是生成每个顶点的颜色,决定是否在该三角面上插值及如何插值。
Flat 不进行插值,每个三角面的颜色都由该三角面的第一个顶点色决定;
Gouraud 对三角面上每个顶点颜色进行线性插值计算;
Phong 对三角面上的顶点法线进行插值,并以此决定每个像素的颜色。效果好,代价高。当前没有硬件支持此属性(详见 官网 和 论坛 )
默认为Gouraud。
(2) 光照模型lighting /illumination
固定管线中的光照模型可见 链接 。其他光照模型是在Shader中实现的,可以有全局光照模型和局部光照模型,常用的几种基础局部光照模型为:
Lambert , Phong 和 Blinn-Phong 。详见 链接 。
(3)Phong lighting和Phong shading
很多人把冯氏光照(Phong lighting)和冯氏着色(Phong shading)混淆到一起。冯氏着色是指计算基于每像素的与表面法向量的插值过程。你可以对每个像素做你喜欢的光照效果,或者对每个顶点做冯氏光照计算,而在物体表面使用高洛德着色(Gouraud shading)。
冯氏光照是由Phong Bui-Tuong在1975年提出的,由于冯氏模型使用一般的文本比较难表示,具体分析可见链接。
Update 2012/06/06:
固定管线的光照模型就是按照Phong lighting来计算的,不过是按照per vertex计算的,而使用Fragment shader可按照per pixel计算,可以获得更平滑的效果。