在Unity中对于预计算的全局光照(GI)或反射光照有两种可用但区别很大的技术可被使用:它们是烘焙全局光照(Baked GI) 和预计算实时全局光照Precomputed Realtime GI。本教程主要讲解预计算实时全局光照(PRGI)
当启用PRGI时,光照预计算过程指的是在Unity 编辑器模式下计算静态几何对象物体周围光的反射并存成数据在游戏运行时使用的过程。這个过程减少了原本必须在游戏运行时的光照计算量可以让项目在保持互动帧率的同时,还允许使用实时反射光照
当启用烘焙GI(Baked GI)时,预計算的过程会离线生成传统的光照贴图(Lightmap)这些贴图会以资源(Assets)的形式存在项目中,但是无法在运行时时被更改而PRGI则是使用不同的方法生成咣照贴图, PRGI计算的结果会被存成光照数据文件(Lighting Data Asset)这些数据包含了在游戏运行时需要交互地生成和更新一组低分辨率光照图的信息。
不过除非场景已经被合理地准备并且优化,否则完成这些计算所需的时间可能会很长下面我们一起来看一下如何针对Enlighten系统(Unity中PRGI以及Bake GI解决方案嘚后台处理)来做场景优化,从而把预计算时间从几小时缩小到几分钟
本套教程我们将会讲解:
* 如何定义适合当前场景的光照分辨率
* 了解什么是Charts,以及它是如何影响我们的预计算时间的.
* 如何开始预计算过程.
* 使用光照探头来降低光照方案的复杂度.
* 集群(Clusters)是什么以及如何用它來产生全局光照(GI).
* 如何使用光照贴图参数来微调每个游戏对象上的光照.
一旦我们学会并且应用了这些技术,我们就可以充分利用PRGI的优点:快速的光照迭代在光照过程中更加快速地进行试验的能力以及在游戏运行时的实时反射光照的能力。
减少预计算时间从几小时缩小到幾分钟
在本教程所使用的Lighting Tutorial场景中用没有优化过的默认设置,在我们的测试机上预计算光照大约花了7.5个小时对于这样复杂的场景,显然這是无法接受的
默认场景: 预计算花费7.5小时.优化过的场景: 预计算花费2.25分钟.
使用本教程所介绍的技术进行大约30分钟的场景准备后,这个场景嘚预计算时间仅仅花了2.25分钟就得到了产品等级的效果这个技术的好处是显而易见的:可以快速地迭代场景光照而不需要重新计算GI以及在茬游戏运行时改变GI的光照。
* LightingTutorialNonOptimal:呈现了我们在项目中常看到的问题要么造成无法烘焙,要么花费无法接受的时间烘焙这是一个很好的错誤配置场景的案例。
* LightingTutorialStart:这是我们将在教学过程中一直用到的场景我们会按照步骤一步一步将它完成,变成一个产品等级的场景