原文链接:Unity - Manual: Lighting strategy
当开始为一个场景创建最终的资源以及光照途径之前,您需要去指定您的光照策略。如果后面在开发中再改变光照策略那将会对您的工作流有很大影响。总的来说在进入您的开发之前花时间把光照策略制定对会节省时间,并且使您能达到一个更好的性能和跟高的视觉保真度。
对于所有的开发工作来说,对于一个选择和另外一个选择的优势和影响之间总会有取舍。然而,有时候某些技术可以给您选择来在某些特定限制下缓和这些取舍。了解这些功能的取舍是您可以选择对您的项目最好的选项。
一个典型的有室外区域的白天场景有下面的光照组件:
·半球光照(天空作用)
·直射光照(太阳+本地光)
·间接光照(反弹和反射光)
这似乎是三个简单的组件,但是由于你可以混合搭配实时光照、混合光照、烘焙光照,静态游戏物体和动态游戏物体,您的光照选择范围是非常多种多样的。
Unity支持多种不同的光照策略和项目使用场景。要了解光照模式并且设置,请看文档光照模式Unity - Manual: Lighting Modes。
对于新手来说,找出什么样的设置工作对他们的场景最有利以及什么是需要权衡的,这是他们所无法完成的。所以让我们来考虑最通用的使用光照设置:
·基础实时光照,光源的镜面高光反射是可见的,但是没有间接光照。
·烘焙光照,软烘焙的阴影是可见的,在高分辨率下间接光照也是可见的,但是没有光照的镜面高光反射,并且动态光照游戏物体不会投射阴影。
·混合光照,类似于烘焙光照,但是会有光照的镜面高光反射,并且动态光照游戏物体也会留下阴影。
·实时光照与GI,合适的间接光照反射和高光反射是可见的,光照时可自由移动和不断更新的,但是没有柔和棱角的阴影。
·所有选项启用,取决于每个光照的设置,您可以得到上面所有选项的结合。
下面的图片显示了这些设置之间明显的不同:
请注意:实时GI(Global Illumination)不能烘焙静态环境光吸收,所以它没有包含在内。
基础实时光照和环境(没有实时GI或是烘焙的GI)
基础实时光照通常用于风格的视觉项目和原型阶段。
典型的目标平台:控制台和PC
优势:
·所有的直接光照和阴影都是实时应用的,因而可以移动。
·允许快速迭代,因为没有预计算,烘焙,或是网格准备。
·静态和动态游戏物体使用同样的方法被照亮的,所以不需要光照探头。
劣势:
·没有半球吸收,只有天空盒/环境值,并且这个区域内的颜色不会被直接光照照亮。
·没有GI或者间接光照组件,场景也许不会有最佳的视觉效果。
全部烘焙光照和光照探头
烘焙光照通常用于那些在运行时性能是问题但是有富余内存的游戏,比如说自上而下等距移动游戏和高帧率的VR游戏。
典型的平台目标:移动平台,VR,控制台和低端PC
优势:
·所有光照都为静态物体烘焙。他们产生环境光遮挡和间接照明。
·Unity可以将区域光照烘焙支持和柔和的阴影角烘焙到静态的光照物体上。
·这里列出的常规设置中最快的运行时性能。
劣势:
·会降低光照迭代速度,因为光照是烘焙的,这意味着当场景改变时Unity需要重新计算光照(除非你正在使用进步的光照映射器)。
·动态光照游戏物体只能使用光照探头照亮。
·镜面高光反射只依赖于立方体贴图和反射,不再依赖于光源。
·动态游戏物体没有阴影。
·会需要很多运行时内存,取决于场景中使用了多少光照贴图纹理。
·如果游戏物体的纹理图表重叠,可能会需要编写纹理坐标通道2(光照贴图的UV2)。
混合阴影遮罩和光照探头的混合光照
混合光照在一天不同时间的光照(比如说太阳移动)不重要的游戏中非常有用。
典型的目标平台:VR,控制台和PC
优势:
·类似于烘焙光照,但是是混合的光照。动态游戏物体具有实时高光反射,同时静态游戏物体得到烘焙的阴影遮罩,最终得到比较好的视觉质量。
劣势:
·游戏物体被限制有四个阴影遮罩。额外的阴影投射光照得到烘焙的。
·在运行时渲染实时光照更是性能密集型的。
·在某些特定设置下,混合光照会剧烈的影响性能。
对于阴影遮罩光照的更多信息,请看阴影遮罩Unity - Manual: Shadowmask
有实时GI和光照探针的实时光照
这个设置用于开放区域的游戏,你需要一天不同时间光照的更新(比如说太阳移动)以及动态光照效果。
典型目标平台:控制台和PC
优势:
·实时间接光照使光照迭代非常迅速
·动态和静态游戏物体都会有实时高光反射和阴影
·比烘焙的间接光照使用更少的内存
·对更新全局照明有一个固定的CPU性能影响
劣势:
·遮挡不会再像烘焙光照那么具有细节,并且通常需要用屏幕空间环境遮挡(SSAO)和逐对象纹理烘焙AO来增强。
·静态游戏物体没有区域/光照角柔和的阴影。
·在某些特定的步骤中实时光照会剧烈的影响性能。
·如果有太多的游戏物体影响到静态光照的话,那会花费巨大的时间进行预计算,尤其是没有一个优化的UV设置的情况下。寻求更多信息,请看全局光照UVUnity - Manual: Global Illumination UVs
要想获取优化实时GI更深入的信息,请看Unity的教程:介绍实时GI的预计算Precomputed Realtime GI (Global Illumination) - Unity Learn
所有选项启用
通常,如果你想要在游戏中启用所有光照选项,肯定是想在紧凑的控制内存使用和性能限制下达到高保真度的要求。你应该在完全理解了每个独立系统,以及知道怎样去处理每个光照合并的情况下才这么做。
典型目标平台:控制台和PC
优势:
·这是一整套光照的特性,给予你全部的功能。
劣势:
·在运行时有高性能要求,并且有高内存使用。
·增加了工作流时间,需要更多的UV编写和烘焙的时间
为了帮助您学习光照,探照灯地下通道场景使用实时GI的实时光照。这提供了一个高光反射的不同范围,效果好的反射光照,并且允许您快速迭代光照。