Light对象本身是不可见的,但是可以在包含Light对象的坐标系中任何面片和Surface对象上看到光照的效果。有很多函数可以生成这些对象,包括surf,mesh,pcolor,fill,fill3,surface和patch函数等。
通过设置不同的Axes,Light,Patch和Surface对象属性,可以控制光照效果。所有属性都有默认值,可以生成需要的结果。但是,也可以通过调节这些属性值来获得指定的效果。这些属性及其控制效果如表3-1所示。
表3-1 控制光照效果的属性
| 属 性 | 效 果 |
|---|---|
| AmbientLightColor | Axes对象的属性,它指定场景中背景光的颜色。背景光没有方向,对所有对象的影响都是相同的。背景光效果只在坐标系中有可见光对象时才会出现 |
| AmbientStrength | Patch对象和Surface对象的属性,它确定从对象反射来的光中ambient组分(环境光)的强度 |
| DiffuseStrength | Patch对象和Surface对象的属性,它确定从对象反射来的光中diffuse组分(漫反射光)的强度 |
| SpecularStrength | Patch对象和Surface对象的属性,确定从对象反射来的光中specular组分(镜面光)的强度 |
| SpecularExponent | Patch对象和Surface对象的属性,确定指定镜面光大小的面片和曲面属性 |
| SpecularColorReflectance | Patch对象和Surface对象的属性,确定反射光被对象颜色或光源颜色着色的程度 |
| FaceLighting | Patch对象和Surface对象的属性,确定计算对象曲面上光照效果的方法,包括没有光照、刻面、Gouraud或Phong光照算法 |
| EdgeLighting | Patch对象和Surface对象的属性,确定用于计算对象边上光照效果的方法,包括没有光照、刻面、Gouraud或Phong光照算法 |
| BackFaceLighting | Patch对象和Surface对象的属性,确定顶点法向指向远离相机的一侧时曲面的颜色。这个属性对于区分对象的内表面和外表面很有用 |
| FaceColor | Patch对象和Surface对象的属性,指定对象小面的颜色 |
| EdgeColor | Patch对象和Surface对象的属性,指定对象边的颜色 |
| VertexNormals | Patch对象和Surface对象的属性,包含对象各顶点的法矢量。MATLAB用法矢量进行光照计算。MATLAB会自动计算这些数据,也可以自己指定顶点法向 |
| NormalMode | Patch对象和Surface对象的属性,确定如果改变对象数据或使用VertexNormals属性的当前值,是否重新计算顶点法向。如果指定VertexNormals的值,MATLAB将该属性设置为manual |