在Unity中,无论预计算照明是自动处理还是手动处理,它都是在后台进行计算的。
当预计算运行时,编辑器右下角将出现一个蓝色进度条。根据是Baked Gl,还是Precomputed Realtime GI,预计算过程会有不同的阶段。
显示预计算过程当前的进度。
在上面的例子中,我们可以看到11个任务已经执行了5个,在预计算过程移动到第6个任务之前,还有108个工作需要处理。
各个阶段如下:
| Precomputed Realtime GL | Baked GL |
|---|---|
| 01 - Create Geometry | 01 - Create Geometry |
| 02 - Layout Systems | 02 - Atlassing |
| 03 - Create Systems | 03 - Create Baked Systems |
| 04 - Create Atlas | 04 - Baked Resources |
| 05 - Clustering | 05 - Bake AO |
| 06 - Visibility | 06 - Export Baked Texture |
| 07 - Light Transport | 07 - Bake Visibility |
| 08 - Tetrahedralize Probes | 08 - Bake Direct |
| 09 - Create ProbeSet | 09 - Ambient and Emissive |
| 10 - Create Bake Systems | |
| 11 - Bake Runtime | |
| Probes | 12 - Upsampling Visibility |
| 01 - Ambient Probes | 13 - Bake Indirect |
| 02 - Baked/Realtime Ref. Probes | 14 - Final Gather |
| 15 - Bake ProbesSet | |
| 16 - Compositing |
开始预计算
Unity预先计算照明方案仅考虑静态几何物体。要开始照明预先计算过程,我们至少需要一个GameObject在我们的场景中被标记为“静态(static)”。
从“Inspector”面板中,可以选择“static”复选框(“Inspector”>“static”)。这会将GameObject的所有静态选项设置为静态的,包括导航和批处理,而这可能是你不愿看到的。对于Precomputed Realtime Gl,仅有”Lightmap Static’需要被选中。
对于更细粒度的控制,可以从“Inspector”面板的“Static”复选框右侧的下拉列表中设置各个静态选项。此外,对象也可以在Light窗口的“Object”区域中设置为“Static”。
自动/手动的预计算
如果从Unity的“Light”面板(Light>Scene>Auto)底部选中“Auto”,则当对场景中的静态的几何对象进行更改时,预计算过程就会在后台自动开始。
但是,如果未选择“Auto”,则需要手动启动预计算,方法是点击旁边的“Generate Lighting”按钮。这将以相同的方式开始预计算,同时让您控制此过程何时开始。
手动启动预先计算会导致对场景照明的所有方面进行评估和重新计算。如果您希望自己选择性地重新计算反射探测器,可以通过“Generate Lighint”按钮旁边的下拉菜单来完成。
Gl缓存
无论是Baked Gl还是Precomputed Realtime Gl,“Unity”可以缓存(存储)有关场景照明的数据,并尽可能地重用此数据,以便在预计算中节省时间。你对Scene进行更改的数量和性质将决定如何重复使用这些数据。
此缓存存储在Unity项目之外,可以使用(Preference> GI Cache> Clear Cache)清除。清除意味着预计算的所有阶段都需要从重新计算,因此可能会耗费一些时间。u