原文链接:https://unity3d.com/cn/learn/tutorials/s/graphics
1 介绍
当使用Baked GI的时候,会在预计算阶段,离线创建一张lightmap纹理贴图,它会以asset形式保存到项目中,并且在运行时无法修改。而预计算实时GI将光照数据以 Lighting Data Asset(包含更新和创建一系列低分辨率的交互的Lightmap) 形式来保存。
除非场景被正确准备和优化,否则渲染计算将需要数个小时。本教程将学习如何为Enlighten优化场景。
本系列文档将包含:
- 如何决定场景中适当的光照分辨率;
- Charts 是什么,以及它们如何影响我们预计算时间;
- 如何开始预计算阶段;
- 使用探针光照来减少光照分辨率的复杂度;
- 提高Unity预计算实时GI的auto-unwrapped UVs创建;
- Clusters 是什么,并且它们如何用来创建全局光照;
- 使用Lightmap 参数来调整我们逐物体的光照。
1.1 工程下载
https://assetstore.unity.com/packages/essentials/tutorial-projects/lighting-optimisation-tutorial-73563
工程资源:asset store里的Lighting Optimisation Tutorial资源
主要使用 Scenes/Article 文件夹下的: LightingTutorialOptimal, LightingTutorialNonOptimal and LightingTutorialStart场景:
- LightingTutorialOptimal是已经优化好的场景;
- LightingTutorialNonOptimal 是存在很多常见问题和没有优化的场景;
- LightingTutorialStart是本教程将要开始的场景。
2 实时分辨率(Realtime Resolution)
使用预计算实时GI的第一个决定是设置场景默认实时分辨率,它是实时Lightmap像素的数量。
2.1 选择一个适当的实时分辨率
对于新场景首先设置单位比例很重要,本实例设置为1米,对应的物理概念也相同。
选择分辨率时主要根据你的场景,如果是一个室内,物体很多,反射光线变化大的场景,分辨率建议在2-3之间;如果是室外的场景,建议0.5-1;如果是地形,建议0.1-0.5。
2.2 预计算实时GI分辨率 vs. 传统lightmaps
实时的分辨率量级要小于lightmaps的密度,这是因为我们只捕捉间接光,并且它们趋向于柔和。并且阴影通常是实时阴影计算的,而不是lightmap。
相比于全局分辨率,我们还需要修改逐物体的分辨率。如果我们需要更