用MATLAB实现三绘图总结(三)

用MATLAB实现三绘图总结(三)

曲面的明暗及光照

曲面的明暗

[x,y,z] = peaks(50);
surf(z);
brighten(0.5) %brighten中的数值可以设置为-1至1,从-1到0,越靠近-1越暗;从0-1,越靠近1越亮

相关图形如下所示:

用MATLAB实现三绘图总结(三)_参数设置

此时的brighten设置为0.5

用MATLAB实现三绘图总结(三)_参数设置_02

此时的brighten设置为-0.5

灯光

h = light;   %设置灯光对象,h为相应的句柄
h.Color = [0.3 0.4 1]; %设置灯光的颜色,参照RGB设置
h.Position = [-4 -4 10]; %设置灯光的位置,分别设置x,y,z坐标
h.Style = 'local'; %设置灯光的类型,是远光(平行)灯(infinite)还是近光灯(local)

相关图形如下所示:

用MATLAB实现三绘图总结(三)_3d_03

注:默认设置的灯光颜色是白色,无穷远的光,穿过坐标[1,0,1]

光照模式

注:为使效果明显,将peaks的参数设置为10

[x,y,z] = peaks(10);
surf(z);
h = light; %设置灯光对象,h为相应的句柄
h.Color = [0.3 0.4 1]; %设置灯光的颜色,参照RGB设置
h.Position = [-4 -4 10]; %设置灯光的位置,分别设置x,y,z坐标
h.Style = 'local'; %设置灯光的类型,是远光(平行)灯(infinite)还是近光灯(local)
lighting none %消除所有灯光效果
lighting flat %曲面之间差距明显
lighting gouraud %对曲面之间进行线性插值,使曲面的颜色变化稍微平滑一些

lighting flat的相关图形如下所示:

用MATLAB实现三绘图总结(三)_环境光_04

lighting gouraud的相关图形如下所示:

用MATLAB实现三绘图总结(三)_参数设置_05

相较于lighting flat明显更加地平滑

曲面剪裁与曲面材质的相关设置

曲面剪裁

[x,y,z] = sphere(100);
x(50:100,50:100) = NaN; %将x部分设置为NaN,以达到剪裁的效果
y(50:100,50:100) = NaN;
z(50:100,50:100) = NaN;
surf(x,y,z);
axis vis3d;

相关图形如下所示:

用MATLAB实现三绘图总结(三)_环境光_06

反射强度

分为镜面反射和漫反射

[x,y,z] = sphere(100);
h = surf(x,y,z);
axis vis3d;
light %创建灯光对象
for i = 0:0.2:1
h.SpecularStrength = i; %漫反射参数设置
for j = 0:0.2 :1
h.DiffuseStrength = j; %镜面反射参数设置
end
end

注:可以通过设置断点的方式进行渐进演示,本博客暂时不展示

镜面反射指数

[x,y,z] = sphere(100);
h = surf(x,y,z);
axis vis3d;
light;
h.SpecularStrength = 1;
h.DiffuseStrength = 1;
h.SpecularExponent = 2 %数值变化从1-500,光斑大小逐渐减小

相关图形如下所示:

用MATLAB实现三绘图总结(三)_环境光_07

此为参数设置为2的情况,默认参数设置为10

用MATLAB实现三绘图总结(三)_参数设置_08

此为参数设置为100的情况

环境光

相关原理:周围物体漫反射的光照射到我们关注的物体上

[x,y,z] = sphere(300);   %将我们关注的图形设置的更密一些
h = surf(x,y,z);
axis vis3d;
shading interp %使图形更加光滑,亮度调高(主观感受)
light;
h.AmbientStrength = 0.9 %参数范围设置为0-1

相关图形如下所示:

用MATLAB实现三绘图总结(三)_参数设置_09

镜面反射颜色

h.SpecularColorReflectance = 0.1   %参数的大小为0-1

参数大小为1意味着反射的是光源的颜色,小于1表示光源与物体漫反射结合效果

材质

[x,y,z] = sphere(300);   %将我们关注的图形设置的更密一些
h = surf(x,y,z);
axis vis3d;
shading interp %使图形更加光滑,亮度调高(主观感受)
light;
material shiny; %镜面反射强于环境光和漫反射
material dull; %主要进行漫反射
material metal; %镜面反射强一些

相关图形如下所示:

用MATLAB实现三绘图总结(三)_环境光_10

material shiny的图形

用MATLAB实现三绘图总结(三)_环境光_11

material dull的图形

用MATLAB实现三绘图总结(三)_3d_12

material metal的图形

注:可以直接设置五个参数

material([ka,kd,ks,n,sc])

其中ka为环境光,kd为漫反射,ks为镜面反射,n为镜面反射指数,sc为镜面反射颜色

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/39627.html

(0)
编程小号编程小号
上一篇 2023-07-18
下一篇 2023-07-18

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注