光照类型

时间:2024-04-04 09:53:22

原文链接:光照类型

Point lights

Point light从场景空间中的一个点向所有方向均匀发出光线。照射到物体表面的光线方向为接触点和light object中心的连线。光发出后强度随着距离较小,到达指定距离后减为0。光的强度与距离的关系为:I=1/(d*d),与真实世界中的衰减方式一致。
光照类型

Point lights可以用来模拟场景中的灯光和其他局部光源。非常适合用来表现照亮周围环境的闪光或者爆炸效果。
光照类型
场景中的Point light效果

Spot lights

Spot light与Point light一样有一个具体的位置和强度衰减距离。但是Spot light只向一个角度范围内发光,形成一个锥形的照明区域。锥体的中心线为light object的方向(默认为Z方向)。光的亮度到达锥体边缘时减为0。增大发光角度时锥体范围会增大,it increases the size of this fade, known as the ‘penumbra’。
Spot lights一般用来模拟人工光源,如手电筒,车灯和探照灯。通过脚本或者动画可以控制spot light的移动来照亮场景中的一小块区域,从而创造出舞台灯光效果。
光照类型
场景中Spot light的效果

Directional lights

Dirctional lights用来制造创景中类似太阳光的效果时非常有用。Directional lights可以看作是从无穷远的位置发出的远距离光,与太阳光有很多共同点。Directional light的光源没有固定的位置,可以放到场景中的任何地方。光线照射到场景中所有物体的方向一致。光线到达目标物体的亮度是一致的,不会衰减。
光照类型

Directional lights用来表示游戏场景范围外部的远距离大型光源。在一个现实场景中,可以用来模拟太阳或者月亮。在一个抽象的游戏世界,可以实现不指定光源具体位置的情况下为物*造不错的阴影效果。
光照类型
场景中Directional light的效果

新建的场景默认会包含一个Directional Light。在Unity 5中,这是与Lighting面板(Light>Scene>Skybox)的程序性天空系统相关的。可以删除默认的Directional Light后重新创建,或者简单地为’Sun’(Lighting>Scene>Sun)指定一个GameObject以修改默认行为。旋转默认的Directional Light会导致天空盒发生变化。当光线与地面平行时,可以得到日落的效果。另外,光线方向向上时,天空会变黑,就好像到了晚上。光线方向向下时,天空类似于白天。如果环境光光源设置为天空盒,环境光就会根据这些颜色相应发生变化。

Area lights

Area light由空间中的一个矩形定义。从表面区域的一侧,向空间中的各个方向均匀的发出光线。Area Light的传播距离不能设置,亮度随着距离增加,按照距离的平方衰减。由于这个光照的计算量较大,area lights在运行过程中是不可用的,只能bake到lightmap中。
光照类型

由于area light会同时从不同方向照亮物体,相较于其他类型的光,阴影会更加柔软微弱。可以用来制造现实主义的街灯效果或者一盏里玩家比较近的灯。一个面积较小的area light可以模拟较小的光源(比如屋内的灯光),会得到比点光源更真实的效果。
光照类型

Area Light从表面的各个方向发出光线,形成带有柔软阴影的散射光效果

Emissive materials

光照类型
Emissive materials与Area lights一样,从表面向各个方向发光。它们在场景中形成反射光,并且在游戏中可以改变颜色和亮度属性。相对于不被Precomputed realtime GI支持的area light,使用 emissive materials可以实时实现近似的柔软光照效果。
‘Emission’是Standard Shader的属性,能让static物体向场景中发出光线。默认情况下’Emission’的值为0,也就是说有标准着色器材质的物体不会发光。
Emissive materials同样没有距离设置,按照距离平方的速度衰减。只有在Inspetor中设置为’Static’和’Lightmap Static’的物体才能接收’Emission’发出的光线。同样,将emissive materials应用到non-static或dynamic的几何体(比如角色)上,将不会向场景发出光线。
尽管不会向场景中发出光线,emission大于0的材质看起来仍然会更加明亮。将Standard Shader的’Global Illumination’属性设置为’None’能达到同样的效果。这些自照明的材质可以创造霓虹灯或其他可见光源的效果。
Emissive materials只直接影响场景中的static几何体。如果要dynamic,non-static集合体接收emissive materials发出的光,必须借助光线探测器。

Ambient light

Ambient light存在于场景中所有地方,不需要任何特定的发光源。是场景整体效果和亮度的重要组成部分。
根据想要达到的艺术效果,Ambient light可以在许多情况下发挥作用。比如明亮,卡通类型的渲染效果,不希望出现深色阴影或者将光照手绘到纹理中时。想要不调整特定光源达到增加场景整体亮度时,也可以使用Ambient light实现。
与Ambient light相关的设置可以在Lighting window中找到。