13.4光照模型
光照是一种利用方向光源照亮物体的技术,在某些情况下,这项技术能使表面微妙的差异更容易看到,光照也能用来对三维的图形增加现实感
第一种方法:利用surf函数,(surf函数的扩展)
x=-10:0.1:10;
y=-10:0.1:10;
[X,Y]=meshgrid(x,y);
Z=-X.^2-Y.^2+200;
figure
surf(X,Y,Z,'FaceColor','red','EdgeColor','none'); %'FaceColor','red'曲面涂上红色,边缘无色
%一个发光的物体被加到了“镜头”的左边(即从空间观看时所在的表面的位置)
camlight
left;
%设置照明方式为phong模型,
lighting
phong
%view命令改变视角
view(-15,65)
第二种方法:
MATLAB中内置了surfl函数,可以画出类似于函数surf产生的带彩色的曲面,原理是基于运用漫反射、镜面反射光和环境照明模型。使用一个单色颜色映像(如灰色,纯白,铜黄或粉红色)和插值色彩,会画出效果更好的曲面,语法格式如下:
surfl(X,Y,Z,S):其中S以[Sx,Sy,Sz]或[az,el]的形式定义光源方向,在没有定义的情况下,其默认光源是逆时针45度。
例:
[X,Y,Z]=peaks