Unity全局光照技术详解

需积分: 46 9 下载量 187 浏览量 更新于2024-07-15 收藏 2.78MB PDF 举报
"该PDF文件主要探讨了Unity引擎中的全局光照技术,包括实时光照、烘培光照和混合光照模式,以及各种阴影模式的优缺点。文档由作者ameng于2019年创建和更新,详细介绍了Unity光照的相关技术信息和术语。" 在Unity中,全局光照(Global Illumination,GI)是模拟光线在场景中反射的过程,它对提升场景的真实感至关重要。Unity提供了三种主要的光照模式:实时光照(Realtime Lighting)、烘培光照(Baked Lighting)和混合光照(Mixed Lighting)。 1. 实时光照(Realtime Lighting):实时光照是一种实时计算光照效果的方法,适用于动态物体和变化的环境。在Unity中,启用RealtimeGI(实时全局光照)可以实现更逼真的光照效果,但这种模式在移动平台上可能带来较大的性能开销,因为它是通过Enlighten中间件在CPU上进行多线程计算的。 2. 烘培光照(Baked Lighting):烘培光照是预先计算并存储光照信息,通常用于静态物体和不常改变的环境。这种方式能有效降低运行时的性能需求,但无法处理动态光源。Unity支持使用BakedGI提供间接光照,但若关闭RealtimeGI,动态物体将失去间接光照,可能导致某些区域过于昏暗。 3. 混合光照(Mixed Lighting):混合光照结合了实时光照和烘培光照的优点,允许动态光源与烘培光照共存。在这种模式下,光源可以设置为Mixed,从而在享受实时光照的同时,利用烘培GI提供间接光照。 文档中还提到了几种不同的阴影模式: - BakedIndirect模式:这种模式下,间接光照是预先烘培的,适用于静态环境。然而,动态光源的间接光照效果将丢失,可能导致视觉上的不一致。 - Subtractive模式:此模式减少了场景中的间接光照,适合需要减少光照复杂性的场景,但可能会牺牲一些光照质量。 - Shadowmask模式:Shadowmask模式允许通过一个遮罩贴图来控制阴影的分布,适用于复杂阴影情况,但可能需要额外的计算和内存。 - DistanceShadowmask模式:这种模式在远处使用遮罩贴图来优化阴影,以减少近处阴影的计算成本,但可能在过渡区域产生可见的边缘。 Unity的光照设置可以通过"Window->Rendering->Lighting Settings"面板进行调整。在设计光照时,美术和开发者需要根据场景需求和目标平台的性能限制来权衡各种光照模式和阴影模式的使用。对于移动平台,通常倾向于使用烘培光照以优化性能。