简介
本文将会通过一个简单的场景搭建,介绍如何 使用 烘焙光照以及相关的注意事项。另外还介绍了Unity内全局 光 照(GI)的知识和GI实际在游戏内的表现效果。
Unity关于光照相关的参考文档地址:https://docs.unity.cn/cn/current/Manual/LightingOverview. html
下面是一些基本的概念
直接光照和间接光照
直接光照指的是,光源照射到物体表面后仅经过一次反射后进入到相机中的光照 信息 。大多数情况下,相机内接收到的光都是来自于直接光。
间接光照则是光源经过多次的反射后进入到相机中的光照信息,一般需要借助全局光照(GI)或者反射探针来实现。
三种光照模式
实时(Realtime)光照:默认创建的光照 类 型都是该类型,实时光照会在运行时的每一帧进行光照计算。并且可以自由地修改物体和光源的位置和属性。
烘焙(Baked)光照:烘焙光照,是 Editor 提前在场景中进行光照计算,生成对应的光照数据,这个过程就叫烘焙,后续在游戏运行时,不会再对该类型的光照进行计算,而是直接从光照贴图中获取数据。该光照适用于场景中静态的光照和物体。
混合(Mixed)光照:可以在烘焙的过程中生成对应的光照信息。在运行时会将烘焙的光照信息和实时的光照信息叠加在一起。并且可以在运行时修改光源信息,不过这些修改仅会影响实时光照部分计算的结果。不影响原先的烘焙结果。同时混合光照记录的信息,会受到光照设置中Mixed Lighting的Lighting Mode选项影响
关于烘焙光照的实践
1.测试场景搭建
首先创建一个测试场景,为了避免天空盒和背景对最终光照结果的影响,将相机的BackgroundType改成SolidColor,设置Background颜色设为纯黑色

之后打开Window->Rendering->Lighting 设置界面
选择Environment将Environment Lighting的Source设置为Color,Ambient Color设置为全黑色
Environment Reflections 的Intensity Multiplier设置为0

之后在场景内放置一个平面和两个胶囊体。其中StaicPlane和StaticCapsule(静态胶囊体)均勾选右上角的Static选项
场景内默认的平行光命名为TestLight,然后复制一个TestLigth改名为RealTimeLight,并且将RealTimeLight的Active设置为False。这时可以看到以下的一个画面

如果将TestLight的Active也设置为false可以看到整个画面变成了全黑的。说明此时游戏内的物体已经不受环境光的影响

之后恢复TestLigh

已于 2023-11-30 09:59:05 修改 · 1.3w 阅读
本文通过一个测试场景,详细介绍了Unity中烘焙光照和全局光照的原理及实践应用,包括直接光照与间接光照的区别,实时、烘焙和混合光照模式的工作方式,以及环境光设置和影响。在烘焙光照中,静态物体的光照信息在烘焙后存储在光照贴图中,动态物体不受影响。全局光照则分为烘焙和实时两种,静态物体在开启全局光照后能反映出环境的间接光效果。