Version: 2021.1
光源
使用光源

光源类型

本页介绍将 Light 组件上的 Type 属性的效果。

可以使用 Type 属性来选择光源的行为。可用值有:

  • 点光源 (Point light),这种光源位于场景中的一个点,并在所有方向上均匀发光
  • 聚光灯 (Spot light),这种光源位于场景中的一个点,并以锥体形状发光
  • 方向光 (Directional light),这种光源位于无限远的位置,仅在一个方向上发光
  • 面光源 (Area light),这种光源由场景中的矩形定义,并沿表面区域均匀地向所有方向发光,但仅从矩形所在的面发射

点光源

点光源位于空间中的一个点,并在所有方向上均匀发光。照射到表面的光线的方向是从接触点返回到光源对象中心的线。强度随着远离光源而衰减,在到达指定距离时变为零。光照强度与距光源距离的平方成反比。这被称为“平方反比定律”,类似于光在现实世界中的情况。

点光源可用于模拟场景中的灯和其他局部光源。您还可以用点光源逼真地模拟火花或爆炸照亮周围环境。

场景中的点光源的效果
场景中的点光源的效果

聚光灯

像点光源一样,聚光灯具有指定的位置和光线衰减范围。不同的是聚光灯有一个角度约束,形成锥形的光照区域。锥体的中心指向光源对象的发光 (Z) 方向。聚光灯锥体边缘的光线也会减弱。加宽该角度会增加锥体的宽度,并随之增加这种淡化的大小,称为“半影”。

聚光灯通常用于人造光源,例如手电筒、汽车前照灯和探照灯。通过脚本或动画控制方向,移动的聚光灯将照亮场景的一小块区域并产生舞台风格的光照效果。

场景中的聚光灯的效果
场景中的聚光灯的效果

方向光

方向光对于在场景中创建诸如阳光的效果非常有用。方向光在许多方面的表现很像太阳光,可视为存在于无限远处的光源,。方向光没有任何可识别的光源位置,因此光源对象可以放置在场景中的任何位置。场景中的所有对象都被照亮,就像光线始终来自同一方向一样。光源与目标对象的距离是未定义的,因此光线不会减弱。

方向光代表来自游戏世界范围之外位置的大型远处光源。在逼真的场景中,方向光可用于模拟太阳或月亮。在抽象的游戏世界中,要为对象添加令人信服的阴影,而无需精确指定光源的来源,方向光是一种很有用的方法。

场景中的方向光的效果
场景中的方向光的效果

默认情况下,每个新的 Unity 场景都包含一个方向光。在 Unity 5 中,此光源已关联到 Lighting 面板的 Environment Lighting 部分定义的程序化天空系统中 (Lighting > Scene > Skybox)。您可以更改此设置,方法是删除默认的方向光并创建新光源,或者直接通过“Sun”参数 (Lighting > Scene > Sun) 指定不同游戏对象。

旋转默认方向光(或“太阳”)会导致“天空盒”更新。使光线与侧面成一定角度,与地面平行,便可以实现日落效果。此外,将光源指向上方会使天空变黑,就好像是夜晚一样。如果光线从上到下成一定角度,天空将像白昼。

如果选择天空盒作为环境光源,那么环境光照将根据这些颜色进行更改。

面光源

面光源是通过空间中的矩形来定义的。光线在表面区域上均匀地向所有方向上发射,但仅从矩形的所在的面发射。无法手动控制面光源的范围,但是当远离光源时,强度将按照距离的平方呈反比衰减。由于光照计算对处理器性能消耗较大,因此面光源不可实时处理,只能烘焙到光照贴图中。

由于面光源同时从几个不同方向照亮对象,因此阴影趋向于比其他光源类型更柔和、细腻。您可以使用这种光源来创建逼真的路灯或靠近玩家的一排灯光。小的面光源可以模拟较小的光源(例如室内光照),但效果比点光源更逼真。

光线在面光源的表面上发射,产生具有柔和阴影的漫射光。
光线在面光源的表面上发射,产生具有柔和阴影的漫射光。

=======

光源
使用光源