VTK 学习----3D基础知识-光照

2.3 光照

2.3.1 环境光

环境光通常不是来自单个光源,而是来自散落在我们周围的许多光源,即使它们不是立即可见的。光的一个特性是它可以在许多方向上散射和反射,到达不在其附近的斑点; 因此,光可以在其他表面上反射并且对物体的照明具有间接影响。

2.3.2 漫反射光

环境照明本身并不会产生最有趣的结果,但漫射照明将开始对物体产生显着的视觉影响。漫射照明使得物体越靠近其光线与光源对准的光线就越亮。为了让您更好地了解漫反射照明,请查看以下图像:

VTK 学习----3D基础知识-光照_第1张图片

在左边,我们找到了一个光源,其光线照射在我们物体的一个片段上。然后,我们需要测量光线接触片段的角度。如果光线垂直于物体表面,则光线影响最大。

2.3.3 镜面光

就像漫反射光一样,镜面反射是基于光的方向向量和对象的法向向量,但这次它也是基于视图方向,例如从玩家看片段的方向。镜面照明基于光的反射特性。如果我们将物体的表面看作镜子,那么无论我们在哪里看到光线反射在表面上,镜面光都是最强的。您可以在下图中看到此效果:

VTK 学习----3D基础知识-光照_第2张图片

我们通过反射法线向量周围的光方向来计算反射向量。然后我们计算这个反射矢量和视角方向之间的角距离,它们之间的角度越近,镜面反射光的影响就越大。由此产生的效果是,当我们观察通过物体反射的光线方向时,我们会看到一些高光。

2.3.4 灯光的重要性

  1. 照明和阴影是使图形图像看起来更逼真,更易理解的重要工具
  2. 提供关于曲面的曲率和方向的关键视觉提示
  3. 使图形图像中的三维性显而易见

VTK 学习----3D基础知识-光照_第3张图片

点亮和未点亮的球体

茶壶的例子

(a)线框茶壶
(b)用纯色绘制但没有照明或阴影的茶壶

(c)仅具有环境光和漫射光的平面阴影
(d)仅具有环境和漫反射的Gouraud插值

(e)具有环境光,漫反射和高光照明的平面阴影
(f)具有环境光,漫反射和高光照明的Gouraud阴影

VTK 学习----3D基础知识-光照_第4张图片

2.3.5 VTK灯光

vtkLight是用于3D渲染的虚拟灯。它提供了定位和指向灯光,打开和关闭灯光以及设置亮度和颜色的方法。除了基本的无限远点光源属性外,还可以指定光衰减值和锥角。仅当光是位置光时才使用这些属性。默认为定向光(例如无限远光源)。

灯具有描述灯光相对于相机如何移动的类型。前照灯始终位于当前摄像机位置,并照亮相机的焦点。CameraLight也随相机一起移动,但可能与它不一致。CameraLights在标准化坐标空间中定义,其中摄像机位于(0,0,1),摄像机正在查看(0,0,0),并且向上是(0,1,0)。最后,SceneLight是场景本身的一部分,不随相机移动。(渲染器负责根据其类型移动灯光。)

灯具有一个转换矩阵,用于描述它们所处的空间。光的世界空间位置和焦点由它们的局部位置和焦点定义,由它们的变换矩阵(如果存在)变换。后面的章节将会详细讲解vtkLight类及其各个接口的作用。

你可能感兴趣的:(VTK,3D,灯光)