主要内容

照明的概述

照明的命令

MATLAB®图形环境提供了使您能够定位光源和调整反射光源的对象的特性的命令。这些命令包括以下内容。

命令

目的

camlight

根据相机位置创建或移动一个光

lightangle

在球坐标中创建或定位一盏灯

创建一个轻的对象

照明

选择一种照明方法

材料

设置照明对象的反射率属性

您可以设置光和光对象属性来实现特定的结果。除了本主题区域中的材料之外,您还可以探索照明示例,作为可视化照明的介绍。

轻的物体

对象创建一个轻对象函数。三个重要的光对象属性是

  • 颜色-光对象投射的光的颜色

  • 风格-要么无限远(默认)或本地

  • 位置-方向(对于无限光源)或位置(对于局部光源)

颜色属性决定了来自光源的方向光的颜色。场景中物体的颜色是由物体的颜色和光源决定的。

风格属性确定光源是否为点源(风格设置为当地的),从指定位置向四面八方辐射,或放置在无限远处的光源(风格设置为无限),以平行光线从指定位置的方向照射。

位置属性指定光源在轴数据单元中的位置。在无穷远处的光源情况下,位置指定光源的方向。

光影响与光在同一轴上的表面和补丁对象。这些物体有许多属性,可以改变它们在灯光照射下的外观。

影响照明的属性

你不能看到光的物体本身,但你可以看到它们在任何补丁和表面物体上的效果,在包含光的轴上。有许多函数创建这些对象,包括冲浪pcolor填满,fill3以及表面而且补丁功能。

您可以通过设置各种轴、光、补丁和表面对象属性来控制照明效果。所有属性都有缺省值,通常会产生理想的结果。但是,您可以通过调整这些属性的值来达到您想要的特定效果。

财产

效果

AmbientLightColor

一个axis属性,用于指定场景中背景光的颜色,它没有方向,并统一影响所有对象。环境光效果只有在坐标轴上有可见光物体时才会发生。

AmbientStrength

决定从物体反射的光的环境成分的强度的一种贴片和表面特性。

DiffuseStrength

光斑:决定从物体反射的光的漫射成分的强度的一种贴片和表面特性。

SpecularStrength

决定从物体反射的光的镜面成分的强度的一种贴片和表面特性。

SpecularExponent

决定镜面高光大小的补丁和表面属性。

SpecularColorReflectance

决定镜面反射被物体颜色或光源颜色着色程度的一种贴片和表面特性。

FaceLighting

一种补丁和表面属性,它决定了用来计算光在物体表面上的效果的方法。选择要么无照明,平照明,要么高乐照明,算法照明。

EdgeLighting

确定用于计算光线对物体边缘影响的方法的补丁和表面属性。选择要么无照明,平面照明,要么高洛照明算法。

BackFaceLighting

一个补丁和表面属性,它决定了当面的顶点法线指向远离相机时如何被照亮。此属性用于区分对象的内部和外部表面。

FaceColor

指定对象表面颜色的补丁和表面属性。

EdgeColor

指定对象边缘颜色的补丁和表面属性。

VertexNormals

包含对象每个顶点法向量的补丁和曲面属性。MATLAB使用顶点法向量进行照明计算。虽然MATLAB会自动生成这些数据,但您也可以指定自己的顶点法线。

NormalMode

一个补丁和表面属性,它决定MATLAB是否在更改对象数据时重新计算顶点法线(汽车的当前值VertexNormals属性(手册).如果指定的值VertexNormals, MATLAB将此属性设置为手册

有关更多信息,请参见轴属性表面性质,块的属性

照明控制举例

照明是一种为图形场景增加真实感的技术。它通过模拟物体在自然光(例如,来自太阳的定向光)下的高光和暗区来实现这一点。为了创建照明效果,MATLAB定义了一个称为light的图形对象。MATLAB将照明应用于表面和补丁对象。

示例-在场景中添加灯光

此示例显示薄膜表面,并用从相机位置右侧的位置发出的光源照亮它。

膜camlight

创建一个光激活了许多与照明相关的属性控制特性,如环境光和物体的反射率属性。

例子-启发性数学函数

光照可以增强数学函数的曲面图。例如,使用ezsurf命令对表达式求值

x 2 + y 2 ÷ x 2 + y 2

除以区域-6π到6π

h = fsurf (@ (x, y)罪(sqrt (x ^ 2 + y ^ 2))。/√(x ^ 2 + y ^ 2),…(6 *π,6 *π));

现在添加照明使用lightangle函数,该函数根据方位角和仰角接受光的位置。

view(0,75) shading interp lightangle(-45,30) h.FaceLighting = 'gouraud';h.AmbientStrength = 0.3;h.DiffuseStrength = 0.8;h.SpecularStrength = 0.9;h.SpecularExponent = 25;h.BackFaceLighting =“不发光的”;

获取表面对象的句柄后使用findobj,您可以设置属性,以影响光从表面反射的方式。看到影响照明的属性有关这些属性的更详细描述。

Baidu
map