美文网首页Unity Shader分享Unity技术分享unity3D技术分享
【Unity3D技术文档翻译】第3.4.1篇 灯光类型

【Unity3D技术文档翻译】第3.4.1篇 灯光类型

作者: 何三思 | 来源:发表于2018-07-04 12:15 被阅读9次
    Unity3D技术文档翻译

    上一章:【Unity3D技术文档翻译】第3.4篇 灯光资源概述(Light sources)

    本章原文所在章节:【Unity Manual】→【Graphics】→【Graphics Overview】→【Lighting】→【Light sources】→【Types of light】

    灯光类型(Types of light)

    本节详细介绍 Unity 中创建灯光的几种不同方式。

    点光源(Point lights)

    点光源被放置在空间中的一点,并向四面八方发射灯光。灯光照射到物体表面的方向,就是照射点与灯光对象中心之间的连线。灯光强度取决于与光源之间的距离,在一个特定的范围内,光强逐渐趋于0。光强与光源的距离成平方反比。这被称为“平方反比定律”,这与现实世界中的灯光表现近似。

    点光源可被用于模拟灯具以及场景中其他的光源。你还可以使用点光源制作一个令人信服的照亮周围环境的闪光或爆炸效果。

    点光源在场景中的效果

    聚光灯(Spot lights)

    和点光源类似,聚光灯有一个特定位置,并且覆盖灯光照射到的部分。只是聚光灯被约束为一个角度,形成一个圆锥形照明区域。圆锥的中心位于灯光对象的Z轴方向。灯光在圆锥的边缘会减弱。扩大圆锥角度,将增加圆锥的宽度,同时增加淡出的尺寸(被称为“半影(penumbra)”)。

    聚光灯通常用于像手电筒、汽车前灯、探照灯等人造光源。方向由脚本或动画控制,一个移动的聚光灯将只照亮场景中的一个小区域,这会创造一个戏剧性的光照效果。

    聚光灯在场景中的效果

    线性光(Directional lights)

    线性光对于创建场景中日光的效果十分有用。线性光的很多表现方式和日光相似,可被当做是无限远距离处的灯光。线性光没有明确的位置,因此灯光对象可被放置在场景中的任何地方。当灯光从对象相同的方向照射,场景中的所有对象都会被照亮。线性光不会随目标对象距离的增加而减弱。

    线性光代表了游戏世界之外大型、远距离的光源。在现实场景中,它们被用于模拟太阳或月亮。而在抽象的游戏世界中,线性光是一个添加令人信服的物体阴影的很好方式,而不需要精确地指定灯光是从哪照来。

    线性光在场景中的效果

    默认设置下,每个新场景都包含一个线性光。在 Unity5 中,线性光与定义在 Environment Lighting 选项中的天空(Window->Lighting->Settings->Scene)连接。你可以通过删除默认灯光,创建一个新灯光来改变该设置;或者简单地指定一个不同的游戏对象到“Sun”参数上。

    旋转默认的线性光(或者“Sun”)将会导致天空盒更新。当灯光旋转到侧面,与地面平行,就能获得日落效果。此外,将灯光朝上放置,天空就会变黑,看起来像是夜晚。灯光从上照下,天空将看起来像白天。如果天空盒被选择为环境光源,环境光将随着这些颜色改变。

    区域光(Area lights)

    区域光由空间中的一个矩形定义。灯光只从矩形表面区域的一面向所有方向一起发射。不能控制区域光的范围,但是光强与距离的平方成反比。因为光照计算占用非常强的处理性能,所以区域光在运行时无法使用,只能被烘焙进光照贴图。

    因为区域光同时从不同方向照亮一个物体,所以阴影变得比其他类型灯光更加柔和与稀薄。你可以使用它创建一个真实的街灯或者一堆靠近玩家的灯光。一个小的区域光能够模拟更小的光源(比如房屋内的光照),这比使用点光源具有更真实的效果。

    从区域光表面反射的灯光,产生了一个带有柔和阴影的漫反射灯光。

    自发光材质(Emissive materials)

    和区域光类似,自发光材质也是从表面区域发射灯光。它使你场景中的反弹光及其相关属性(比如颜色和强度)在游戏过程中被改变。预计算实时GI(Precomputed Realtime GI)不支持处理区域光,但是可以使用自发光材质来模拟实时的柔和光照效果。

    “ Emission(发光)”是标准着色器的一个属性,允许场景中的静态对象发射灯光。默认情况下“Emission”值是0。这意味着使用了标准着色器的物体将不会发射任何灯光。

    自发光材质没有范围值,但是仍然与距离的平方成反比。只有被标记为“Static”或“Lightmap Static”的物体才会接收自发光。同理,具有自发光材质的非静态或者动态的几何体(比如人物角色)不会产生场景光照。

    然而,即便不会产生场景光照,材质的自发光属性大于0时仍然会发出明亮的光。该效果也可通过设置标准着色器中“Global Illumination”参数为“None”来实现。自发光材质对于创建类似霓虹灯或者其他可见光源的效果十分有用。

    自发光材质只能直接影响场景中的静态几何体。如果你需要动态的,或者非静态的几何体——比如人物角色,从自发光材质中提取灯光,就必须使用灯光探针(Light Probes)。

    环境光

    环境光是呈现场景周围环境的灯光,不来自任何特定光源。对调整场景的整体外观和亮度效果是一个重要的手段。

    环境光可被用于一些例子,取决于你选择的艺术风格。举个例子,在一个明亮、卡通渲染风格的场景中,黑色阴影可能不是想要的,或者光照可能是手绘风格的纹理。环境光还可用于增加场景整体亮度,而不需要一个个调整灯光。

    环境光相关设置可在 Lighting window 一节查看。

    如果本文对你有帮助的话,点个赞或者评论一下吧!

    下一章:【Unity3D技术文档翻译】第3.4.2篇 灯光检查器(The Light Inspector)

    相关文章

      网友评论

        本文标题:【Unity3D技术文档翻译】第3.4.1篇 灯光类型

        本文链接:https://www.haomeiwen.com/subject/bxwsuftx.html