三维网线图和曲面图的绘制比线图稍显复杂,这主要表现于图形数据的准备。三维图形的色彩、明暗、光照和视点处理。下面我就向大家简要介绍一下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.灯光、照明和材质处理所表现出的图形具体绘制代码如下图所示:

image.png

5.灯光、照明和材质所表现出的具体图形,即上一步执行的结果如下图所示:

image.png