首先理解一下直接光照和间接光照的定义
在Unity中 光照效果主要由两个地方进行控制1.灯光参数面板(即Light组件) 主要控制的是直接光照
2.全局的Lighting界面来进行控制 主要控制的是间接光照
这两个面板之间是如何联系起来的
通过灯光的模式
Realtime:实时光模式如果勾选实时光realtime 再勾选 全局照明(本质上是间接照明 因为全局 = 直接+间接
Mixed:混合光模式 对应的是烘焙全局光照
三种模式的区别
Realtime: Unity计算并更新实时灯光在运行期间的每一帧的照明。没有实时灯光是预先计算的。
即 每一帧都会进行计算照明信息
Mixed: Unity可以在运行时计算混合光的一些属性,但只有在很强的限制下。一些混合光是预先计算的。
很强的限制指的是什么 即 通过Lighting Mode进行限制 (不同的模式下面会进行提示
比如:
混合灯提供即时的直接照明,而间接光被烘烤成光图和光探针。(即实时产生直接光照 间接光照被烘焙到贴图里
什么是贴图?
简单(通俗)理解一下 就是将灯光的数据化信息 进行计算 计算成一个具体的文件 放在硬盘上 当Unity去运行的时候 就不需要实时的每一帧
去进行计算这些信息 而是去读取这个文件 因此 对于优化性能来说 影响是很大的
关于贴图 注意 只能烘焙静态物体 也就是对于要烘焙的物体 需要勾选为static物体
混合灯光提供实时直接照明。在光图和光探针中使用间接光源。阴影遮罩和光探针遮挡生成烘烤的阴影。运行时使用的阴影蒙版模式可以在质量设置窗格中设置。(即和上一种模式大致相同 多了对阴影效果的叠加
混合光为静态对象提供烘烤的直接和间接照明,动态对象接收实时的直接照明,并使用场景中的主方向光在静态对象上投射阴影。
(即预先计算直接光照和间接光照 计算量最大(针对于静态物体) 都会存储在贴图中这种模式经常和灯光参数面板下的Baked模式进行使用
如何使用:调整为Baked模式后 同时勾选
这样 灯光所有的照明信息都计算到贴图内 这样 即使将游戏中的灯光删除 对于场景来说也不会产生任何影响
Baked: 烘焙光模式 Unity在运行时之前预先计算烘焙灯光的照明,并且不将它们包含在任何运行时照明计算中。所有烘烤灯都是预先计算好的。
下面这些是在实际过程中需要反复调整 配置的属性 需要根据效果去动态调整 再生成贴图 直到达到想要的效果(这部分一般交给美术来做