三维网线图和曲面图的绘制比线图稍显复杂,这主要表现于图形数据的准备。三维图形的色彩、明暗、光照和视点处理。下面我就向大家简要介绍一下matlab对三维图形的灯光、照明和材质处理。
1.灯光设置(light).
light指令函数的调用语法:light('color',option1,'style',option2,'position',option3) %定光设置
关于 light指令的说明
option1可采用RGB三元组或相应的色彩字符。如[1 0 0]或'r'都代表红光。
option2有两个取值'infinite',表示无穷远光;'local'表示近光。
option3总为直角坐标的三元数组形式。对远光,它表示光线穿过该点射向原点;对近光,它表示光源所在位置。
该指令的任何“一组输入量对”都可以空缺,空缺采用默认设置替代。该指令不包含任何输人量时,默认:自光、无穷远、穿过[1,0,1]射向坐标原点。
应该指出:在light使用前,图形各处采用相等强度漫射光。一旦light被执行,图形的“面”等对象所有与“光”有关的属性(如背景光、边缘光)都将被激活,但光源本身不出现在图形窗中。
2.照明设置(lighting)
调用语法: lighting options %设置照明模式
该指令只有在light指令执行执行后在起作用,此外options有以下四种取值:
flat:入射光均匀洒落在图形上的每个面上,主要与facted配用,他是默认模式。
gouraud:先对顶点颜色插补,再对顶点勾划的面色进行插补,用于曲面表现。
phong:对定点出法线插值,在计算各个像素的反光,表现效果最好。
none:使所有光源关闭。
3.材质指令(material)
调用语法: material options %使用预定义反射模式
matlab提供了以下四种预定义表面反射模式,即options有以下四种取值:
shiny:使对象比较明亮;镜反射份额较大,反射光颜色仅取决于光源颜色。
dull:使对象比较暗淡;漫反射份额较大,没有镜面亮点,反射光颜色仅取决于光源颜色。
metal:使对象带金属光泽;镜反射份额很大,背景光和漫反射份额很小,反射光颜色仅取决于光源和图形表面两者的颜色,该模式为默认设置。
default:返回默认设置模式。
4.灯光、照明和材质处理所表现出的图形,具体绘制代码如下图所示:
5.灯光、照明和材质所表现出的具体图形,即上一步执行的结果如下图所示: