打开示例项目中包含的LightingTutorialStart 场景。在Hierarchy窗口中选择一个名为HouseBig02 的对象。这些分组在Environment->Structures->Houses下。通过按Ctrl + C (在Mac上为Cmd + C )将此对象复制到剪贴板。通过按Ctrl + N (在Mac上为Cmd + N )来创建新场景。如果提示您保存更改,如果对当前的场景进度感到满意,请选择“ 是”,否则,请选择“ 否” 。在新创建的场景中,通过按Ctrl + V (在Mac上为Cmd + V )从剪贴板粘贴HouseBig02 。打开“照明”窗口(Window->Lighting),然后选择Scene选项卡。通过启用Auto Generate复选框来启用自动预计算模式。
簇对将其映射到的静态几何体的albedo进行采样。然后,在预计算的Light Transport 阶段,将计算这些簇之间的关系,以便可以在整个簇网络中传播光。Unity会生成静态场景的这种低分辨率近似值,以便简化在运行时需要更新的照明数据量,以便在当前硬件的限制下以交互帧速率提供全局照明。
该图显示了簇X的照明值与附近簇的值之间的关系(图片由Geomerics提供)
一旦完成预计算,就可以修改环境(天空盒)照明以及灯光位置,强度和颜色,而无需重新启动预计算过程。考虑到最终输出中场景的albedo和场景材质的emission,这些照明更改将在整个簇网络中反弹并渗透。
初始反弹之后,更新的照明结果可以应用于簇本身。每次迭代之后,照明的簇将被采样到相应的光照贴图纹理中,然后最终由场景中的着色器使用。
由于此过程是在CPU上异步执行的,因此刷新全局照明解决方案所花费的时间受可用工作线程数量的限制。如果需要,可以使用Lighting窗口中的“ CPU Usage”设置来控制辅助线程的数量。