光照算法

给坐标系添加光照时,MATLAB确定坐标系中面片和Surface对象上的光照效果。计算对象边和面的着色有不同的算法,算法的选择与想获得的光照效果有关。

对于光照计算,MATLAB提供了3种不同的算法。通过设置场景中每个面片和Surface对象的FaceLighting和EdgeLighting属性可以进行选择。每个算法都会生成多少有些不同的结果:

刻面光照—对象的每个小面上生成均匀的颜色。选择这种方法查看平面对象。

Gouraud光照—计算顶点处的颜色,然后插值计算整个小面上的颜色。选择此法查看Surface对象。

Phong光照—在每个小面上进行顶点法向的插值,并计算每个像素的反射。选择此法查看Surface对象。Phong光照生成的效果通常比Gouraud光照的好,但是更费时。

Document Image
\[\]

图3-1 应用几种不同光照方法时红球的显示效果

图3-1显示了应用几种光照方法时红球的显示效果。第1至第4个红球分别对应于没有光照、使用刻面光照、Gouraud光照和Phong光照时的显示效果。

利用lighting命令,可以方便地设置光照算法。