本页介绍将 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) 指定不同游戏对象。
旋转默认方向光(或“太阳”)会导致“天空盒”更新。使光线与侧面成一定角度,与地面平行,便可以实现日落效果。此外,将光源指向上方会使天空变黑,就好像是夜晚一样。如果光线从上到下成一定角度,天空将像白昼。
如果选择天空盒作为环境光源,那么环境光照将根据这些颜色进行更改。
面光源是通过空间中的矩形来定义的。光线在表面区域上均匀地向所有方向上发射,但仅从矩形的所在的面发射。无法手动控制面光源的范围,但是当远离光源时,强度将按照距离的平方呈反比衰减。由于光照计算对处理器性能消耗较大,因此面光源不可实时处理,只能烘焙到光照贴图中。
由于面光源同时从几个不同方向照亮对象,因此阴影趋向于比其他光源类型更柔和、细腻。您可以使用这种光源来创建逼真的路灯或靠近玩家的一排灯光。小的面光源可以模拟较小的光源(例如室内光照),但效果比点光源更逼真。
=======
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.