unity光照窗口
光照窗口(Window -> Lighting)是Unity全局光照特性的主要控制点。尽管Unity中的全局光照(GI)在默认设置下已经能呈现出较好的效果,但该窗口的属性允许你根据不同形式的GI过程,定制所需的场景,或者对指令、速度和内存空间进行优化。此外,该窗口还包含了在Unity 5.0以前版本中设置在Render Setting下的与光照相关的属性,如环境光、光晕、cookie和雾。
总述
光照窗口分为3个标签页:
- Object标签页:允许你选择场景中物体的子集。这对于确定哪些物体需要参与GI计算,以及将设置同步到一组物体上非常有用。
- Scene标签页:包含可应用于整个场景的设置,而非针对单个物体。这些设置控制着光照效果和优化选项。
- Lightmap标签页:可以显示由GI过程生成的Lightmap资源文件集。
无论选择哪个标签页,窗口底部都有一个Auto复选框。若勾选该复选框,当你编辑场景时,Lightmap数据会实时更新(需注意,更新并非立即完成,而是需要花费几秒钟时间)。若未勾选Auto,则Build按钮将被激活,你可以在需要时使用该按钮触发Lightmap的更新。Build按钮还有一个下拉菜单,可选择是否清除场景中的烘焙数据(不清除GI缓存)。
Auto复选框下方是一个显示Lightmap数据的面板。
Object标签页
Object标签页可让你选择一组物体,并将设置应用到这些物体上。
标签页顶部有一系列场景过滤按钮,可将Hierarchy面板中的物体限制为指定类型,如光照、渲染器(Renderer)或地形。选择All与默认情况相同。若选择其他按钮,左侧将仅显示该类型的对象。
需要注意的是,这种过滤不会影响当前所选的物体。例如,即使Hierarchy面板中仅显示过滤后的光照对象,你仍可以选择地形对象。
过滤按钮的关联性在于,这三种对象类型各自拥有不同的属性集合。
Lights
光照对象在Object标签页中的内容与其在Inspector面板中的内容一致。其中,影响GI的属性是Baking和Bounce Intensity。
- Baking:允许你选择该光源是否进行烘焙(前提是启用了烘焙全局光照,即Baked GI)。选择
Mixed时,该光源也会进行烘焙,并且在游戏运行时,方向光会实时照射非静态物体。选择Realtime时,既包含预计算的实时GI,也包含不使用全局光的情况。 - Bounce Intensity:可用于改变间接光的强度(例如,光从一个物体反射到另一个物体)。该值是GI系统计算的多个默认光照的集合。若将其设置为大于1的值,反射光会更强;若小于1,则反射光会更淡。这在某些情况下非常重要,例如,当需要将阴影中较暗的表面渲染得更亮以显示更多细节时;或者,如果你想总体上使用预计算实时GI,但希望某个光源仅作为方向光,可以将其
Bounce Intensity设置为0。
Renderers
渲染器(Renderer)具有以下属性:
- Lightmap Static:告知Unity该物体的位置是固定的,并且该物体会参与GI计算。若物体未标记为
Lightmap Static,则它仍会被光照探针(Light Probes)照亮。 - Scale in Lightmap:该值会影响Lightmap贴图中用于该物体的像素数量。默认值为1,此时用于该物体的Lightmap像素数仅取决于其表面面积(即所有物体单位面积的像素数目一致)。大于1的值会增加该物体所用的像素数,小于1则会减少。你可以使用此属性优化Lightmap,使重要和细节丰富的地方获得更精确的光照。例如,一个单独的平坦深色墙壁使用较小的Lightmap Scale值可能会有更好的效果,而一系列紧密排列的五颜六色的摩托车可能需要较大的Lightmap Scale值。
- Preserve UVs:Unity可以重新计算用于实时Lightmap贴图的UV坐标,以提高存储和性能特性。但重新计算可能会对原始的不连续UV映射产生错误判断。例如,一个故意设置的尖锐边缘可能会被误认为是连续表面,导致原本应有的缝隙消失。若启用
Preserve UVs,物体的映射UV会被直接应用到Lightmap中,以保留故意设置的缝隙。若关闭Preserve UVs,Unity会基于烘焙UV计算实时Lightmap UV。 - Important GI:该属性告知Unity,该物体反射或发出的光会显著影响其他物体。这可以确保该物体发出的微弱光线不会被优化掉。
Terrains
地形的属性是渲染器属性的子集,包括:
- Lightmap Static
- Scale in Lightmap
- Advanced Parameters
Scene标签页
Scene标签页包含应用于整个场景的设置。预计算实时GI和烘焙GI(Backed GI)可通过其后的复选框启用或禁用。
场景相关设置
- Skybox:用于设置场景中的天空盒。
- Sun:当使用天空盒时,可以使用
Sun指定一个方向光物体。若设置为None,则场景中最亮的方向光将被视为代表太阳。 - Ambient Source:环境光并非来自某个特定物体,而是整个场景中显示的光。环境光的光源有三种选择:
- Color:仅使用一种颜色光代表环境光。
- Gradient:允许你分别选择天空、地平线和地表的环境光颜色,并在它们之间实现平滑过渡。
- Skybox:使用天空盒的颜色来确定不同角度的环境光,比简单的渐变光提供更准确的效果。
- Ambient Intensity:设置场景中环境光的强度。
- Ambient GI:指定用于控制环境光的GI模式(预计算的实时光或烘焙)。该选项仅在环境中同时可用这两种光时才有效。
- Reflect Source:允许你指定是使用天空盒还是立方体贴图来表现反射效果。若选择天空盒,还可以额外选择设置用于反射的天空盒的分辨率。
- Reflection intensity:设置反射光在反射物体上的可见程度。
- Reflection Bounce:反射表示从一个物体发生的反射被另一个物体再次反射。场景中的反射通过“Reflection Probes”捕获。该属性可用于设置探针检测到的物体间反射的次数。若设置为1,则仅考虑第一次反射(从上面设置的反射源,如天空盒或立方体贴图)。
分辨率和性能设置
- Realtime Solution:用于设置被实时GI点亮的物体单位长度所用的贴图纹素数量。通常,每个单元像素为1是一个不错的值(具体取决于场景中对象的数量)。但对于地形和大型物体,通常希望降低像素值。可以使用
Lightmap Resolution和Mesh Render的Scale in Lightmap属性来降低分辨率。需要注意的是,若实时和烘焙GI都可用,需要设置Indirect resolution。 - CPU Usage:设置运行时用于计算实时GI所花费的CPU时间的大致比例。较高的CPU利用率会使对光的反应更快,但可能会影响帧率。这不会影响编辑器中进行的预计算过程的CPU利用率。更高的CPU利用率通过增加分配给GI的线程数目来实现。
- Baked Resolution:设置被烘焙GI照亮的物体单位长度的纹理像素数量。一般来说,该值比
Realtime Solution大10倍。 - Baked Padding:设置烘焙Lightmap中分开的形状之间的距离。
- Compressed:启用压缩可节省存储空间,但可能会导致图像失真。
- Indirect Resolution:仅在预计算实时GI关闭时有效,用于设置间接光照计算的分辨率,相当于使用预计算实时GI时的
Realtime Resolution。
光照效果设置
- Ambient Occlusion:在环境光闭塞的情况下,设置物体表面的相对亮度。值越大,闭塞区域与完全光照区域的对比度越明显。该属性仅对GI系统计算的实时分辨率有效。
- Final Gather:若勾选
Final Gather选项,GI计算中最后的光反射将以与烘焙Lightmap相同的分辨率进行计算。这会提高Lightmap的视觉品质,但会在编辑器中增加额外的烘焙时间。 - Directional Mode:Lightmap可用于存储对象表面任意点的主导入光信息。在
Directional模式下,会生成第二张Lightmap,用于存储占主导地位的入射光线的方向。这允许法线映射漫反射材质与GI协同工作。在Directional Specular模式下,会存储更多关于全阴影、高光反射和法线映射的数据。None - directional模式则关闭这两种选项。Directional模式需要两倍的存储空间来存储额外的Lightmap数据,Directional Specular模式需要四倍的存储空间和两倍的贴图内存。 - Indirect Intensity:用于缩放最终Lightmap中间接光照的亮度。设置为1时使用默认倍数,小于1会降低强度,大于1会增强亮度。
- Bounce Boost:一个缩放值,用于增加从一个表面反射到其他表面的光的数量。默认值为1,表示不增加。
其他设置
- Default Parameters:Unity使用一些其他参数来表示Lightmap,除了光照窗口中显示的参数外,一些默认参数可以通过该属性的菜单使用,你也可以使用
Create new选项创建自己的Light参数文件。 - Atlas Size:设置合并了每个单独对象贴图的整个Lightmap贴图的像素大小。
- Fog Color:用于设置场景中雾的颜色。
- Fog Mode:设置雾根据与相机的距离进行积累的方式,有
Linear、Exponential和Exponential Squared三种模式(雾随着距离的积累程度依次递增)。 - Start:设置雾开始出现时与相机的距离。
- End:设置雾完全掩盖场景对象时与相机的距离。
- Halo Texture:用于设置在光周围绘制光晕的贴图。
- Halo Strength:设置光周围光晕的可见度。
- Flare Fade Speed:设置镜头光晕从开始出现到最终淡出视图所经过的时间。
- Spot Cookie:设置聚光灯所用的Cookie贴图。
点击Build按钮将启动光照烘焙过程。右侧的下拉列表可选择清除烘焙数据,这与清除GI缓存不同。
Lightmap标签页
该标签页的作用是使Lightmap资源文件的设置和放置更加简便。