Unity 2017.3中的渐进光照贴图
今天要和大家分享的是Unity 2017.3中渐进光照贴图Progressive Lightmapper (预览)的改进信息,想快速掌握新的进光照贴图方法可以看看。
光照模式支持
在Unity中,通过为一个光照指定不同的模式(实时Realtime,混合Mixed和烘培Baked),可以控制光照的预计算和合成,以达到特定的效果。使用Mixed模式会显著减少实时阴影距离,提升性能。更高的视觉逼真度还可以通过对远距离阴影与实时镜面高光的支持获得。
在Unity 2017.3中,你可以使用渐进光照贴图在以下光照模式中进行选择。
在Baked Indirect模式,混合光源的行为会像从烘焙光照贴图和光照探头获得额外间接光照的实时动态光照一样。像雾这样的特效可以被用来传递实时阴影距离,原本在这种情况下的阴影会丢失。
在Shadowmask模式,混合光照是实时的,而来自静态对象的阴影投射会被烘焙到一个shadowmask纹理和光照探头中。这使你可以基于质量设置中的Shadowmask Mode,渲染远处的阴影,大大减少阴影投射者的数量。
在Subtractive模式,直接照明会被烘焙到光照贴图中,而静态对象将不会拥有来自混合光照的镜面或光滑高光。动态对象将会被实时照亮,并通过光照探头获得来自静态对象的预计算阴影。主定向光允许动态对象在静态对象上投射一个消减性的实时阴影。
要尝试渐进光照贴图的光照模式,场景中必须要有一个混合光源,然后再到Lighting窗口中选择一种光照模式。
为LOD对象生成光照
除了烘焙光照贴图之外,现在可以使用实时光照探头为LOD对象生成光照,为用户提供了一个更加自然的布光工作流程。LOD可以使模型根据摄像机的远近不同分别呈现低复杂度和高复杂度的版本。这样可以减少渲染远处对象时的计算量。当你在场景中与烘焙光照和实时GI一起使用Unity的LOD系统时,系统会照亮LOD组中最精细的那个模型,就像它是一个普通静态模型一样。它为直接和间接照明使用一套光照贴图,为实时GI使用另一套光照贴图。
但是对于LOD组中的低细节LOD,你只能综合来自LOD组周围的光照探头或光照探头代理体的烘焙光照贴图和实时GI。
要在Unity 2017.3中使烘焙系统生成实时或烘焙光照贴图,只需简单的勾选相关游戏对象Renderer组件中的Lightmap Static选项。
下面动画显示了实时环境色是如何对低级别LOD上所用的实时GI产生影响的。
光照贴图流程中的HDR支持
我们为PC、Xbox One和PlayStation 4增加了对HDR压缩光照贴图的支持,以获得更佳的视觉效果。使用高质量光照贴图的优点是,它们不会使用RGBM来对光照贴图的值进行编码,而会使用一个16位浮点值来代替。因此,支持的范围从0到65504。BC6H格式也优于DXT5+RGBM的组合,因为它不会产生任何由于RGBM编码产生的带状瑕疵以及由于DXT压缩而产生的颜色瑕疵。需要进行HDR光照贴图采样的着色器,它们的ALU指令要更短,因为它们不用解码采样值,而且BC6H格式与DXT5所需的GPU内存量相同。
在Player Settings中将Lightmap Encoding选项设置为High Quality,可以轻松启用HDR。
选择High Quality将会启用HDR光照贴图支持,而Normal Quality将会切换到RGBM编码。当在Lighting窗口中启用压缩时,光照贴图将使用BC6H压缩格式。