Unity5.6新光照特性

我们一直致力于解决混合光照的问题,在Unity 5.6 Beta 2版本中加入了不断改进后的功能。本文将为大家分享改进后的光照模式、光照面板及全新的编辑器面板Light Explorer。


介绍

我们想要达成的目标就是帮Unity开发者提供更稳定更直觉的光照方式,并混合烘焙光照和即时光照及阴影来建置场景。Unity5.6 Beta 2中我们做了这些功能来达成这个目标:

1. Unity旧有的Realtime、Mixed及Baked光照模式已改为Dynamic、Stationary及Static。

2. 采用新的 Stationary光照模式组,它可以针对不同的环境与硬件提供一系列定义好的光照方案。

3. Lighting接口也做了全面更新,同时还更新了Mesh Renderer和Light Component Inspector接口。

4. 采用新的编辑器Light Explorer,可以快速存取光照、反射探针(Reflection Probe)、光探针(Light Probe)以及自发光(Emissive)材质。


光照


Unity 5.6 的光照模式

 

 

光照可以设定为以下三种模式:

·  Dynamic(对应之的Realtime)

·  Stationary(对应之前的Mixed)

·  Static(对应之前的Baked)


Dynamic动态光会产生动态的光照和阴影。这些光照可以在执行时改变位置、方向、颜色、亮度以及其它属性。这种类型的光照最灵活,并且可用来计算实时全局光照(Realtime Global Illumination)。动态光在执行时计算直接光照,也会透过阴影贴图产生实时阴影,在Lighting接口中启用Realtime Global Illumination会让动态光源作为实时间接光而影响整个场景。间接光是由即时光照贴图及Enlighten更新的光照探针来计算的。

Stationary固定光会基于光照面板中设定的Stationary光照模式,来混合使用动态及烘焙光照。所有除Subtractive模式以外的Stationary光照模式都会在执行时计算直接光照,并在光照贴图及光照探针中存储间接光照的信息。Subtractive模式会在烘焙期间计算所有标记为Static对象的直接光照。场景设定的Stationary光照模式会影响到其中的Stationary固定光。

Static静态光不能在执行时移动或做其它任何改变。所有静态对象的光照都被烘焙到光照贴图中。动态对象的光照和阴影会被烘焙到光照探针Light Probe中。

Stationary光照模式

Unity 5.6 的光照模式

 

Stationary固定光可以由场景中多种光照模式来控制,这些光照模式指示光照系统如何处理场景中各种光照的直接照明、间接照明及阴影。Stationary固定光可用的光照模式有以下几种:

·  BakedIndirect(间接烘焙)
Stationary固定光会影响实时的直接光照,并透过光照贴图和光照探针影响间接光照。如何使用实时阴影取决于ShadowDistance设定。Baked Indirect模式的效能与效果相对平衡,适合中或高端硬件。

·  DistanceShadowmask(距离阴影屏蔽)
Stationary固定光会影响实时的直接光照,并透过光照贴图和光照探针影响间接光照。实时阴影的效果会根据ShadowDistance设定来决定如何使用实时阴影。此外,静态物体透过阴影屏蔽接收阴影,动态物体则透过光照探针遮蔽(Occlusion)来接收阴影。Distance Shadowmask模式比较适合用于大型或室外场景。

·  Shadowmask(阴影屏蔽)
Stationary固定光会影响实时的直接光照,并透过光照贴图和光照探针影响间接光照。静态物体使用阴影屏蔽为自己产生阴影。动态物体根据Shadow Distance设定所产生的实时阴影贴图来接收阴影。动态物体从光照探针遮蔽(LightProbes occlusion)中接收静态物体的阴影。Shadowmask模式适合用于那些只需为场景中角色或道具增加实时阴影的情况。

·  Subtractive
Stationary固定光透过光照贴图和光照探针影响间接光照。静态物体通过光照贴图处理直接光照,动态物体则实时处理。静态物体通过近似的实时阴影的贴图从主方向光接收动态物体的阴影,实时阴影的效果贴图取决于Shadow Distance设定。动态物体透过实时阴影来接收彼此的阴影,实时阴影取决于ShadowDistance设定。动态物体通过光照探针接收静态物体的阴影。Subtractive模式消耗极小,适合用于整个场景只有一个定向光(通常指太阳)的情况,并且能够支持低阶的移动设备。

 

这些介绍都也会显示在光照接口的提示中,让大家更容易在编辑环境下了解光照模式。

 

UI用户接口

我们对Lighting接口也做了全面更新,同时还更新了Mesh Renderer和Light Component Inspector接口,概述如下。

 

Lighting界面

Unity 5.6 的光照模式

 

 

Lighting接口相比旧版更直觉更好用。改变如下:

l  光照接口不需要的地方现在可以连里面的属性显示一起折迭起来。

l  我们重写了卷标及提示信息,更友善也能提供更多信息给开发者。

l  光照接口底部整合了新的统计面板,可以快速检视场景中光照相关的统计信息。

Unity 5.6 的光照模式

l  Lightmaps页签改名为“GlobalMaps”,显示包含多种贴图如Intensity、Directionality、Shadowmask等等。

Unity 5.6 的光照模式

l  重建Object页签并重新命名为Object Maps。显示当下选择对象的烘焙贴图预览。可以平移及缩放标签下的视图,也可以用F快捷键把焦点移到这个物体的光照贴图UV上。之前显示在Object页签下的属性都已重新分配到对应组件的检视面板上。可用视图如下:

▪ Albedo
▪ Emissive
▪ Realtime Intensity
▪ Realtime Direction
▪ Baked Intensity
▪ Baked Direction
▪ Baked Shadowmask
Unity 5.6 的光照模式

 

 

检视面板(Inspector)
光照面板的Object页签重建后,所有光照相关的属性都已改为显示在对应的组件中。 

Unity 5.6 的光照模式

比如MeshRenderer组件带有可折迭的标签Lighting,里面包含所有能影响网格与光照系统互动的属性。启用Lightmap Static属性会将所有物体设为静态(Static,同检视面板的Static),用于光照贴图计算。其中也包含光照贴图相关的各种属性。

Unity 5.6 的光照模式


我们也重建了Light组件,包含新的光照模式(Dynamic,Stationary,Static),卷标显示也更友善。另外还重写了所有提示信息,用户能更明白属性的具体作用。

 

 

LightExplorer
Unity 5.6 的光照模式

Light Explorer是Unity 5.6 Beta 2中的新接口,可以查看编辑场景中的每个光照。这对于那些光照分布在层级视图上不同位置的大型复杂场景非常有用。Explorer中有4个列表,分别用于调整光照、反射探针、光照探针以及自发光材质。每个表都支持搜寻功能,帮开发者找到想编辑的对象,还能使用Lock Selection锁定当下的选项,即使场景选中的对象改变也不会影响光照面板。这些列表还支持复数编辑,可同时选择多个对象编辑某个属性的值。