2023-05-25 20:03:26
在URP(通用渲染管线)中,光照与阴影的显示效果受渲染路径(Forward/Forward+/Deferred)、光照类型(实时/混合/烘焙)、物体静态属性及Culling Mask/Rendering Layers配置的影响,静态物体烘焙后Culling Mask不生效可能是Unity特性或已知问题,动态光照行为则符合预期。 以下是具体总结:
一、核心结论Forward/Forward+:Culling Mask同时影响光照与阴影(Forward+仅阴影变化需验证)。
Deferred:Culling Mask影响光照与阴影,但静态烘焙物体仍不受影响。
实时光(Non-Baked):动态物体行为正常,静态物体需烘焙。
混合光(Mixed):阴影与光照效果与实时/烘焙模式差异显著。
烘焙光(Baked):静态物体光照/阴影固定,不受Culling Mask影响。
所有渲染路径(Forward/Forward+/Deferred)下,Rendering Layers均影响光照(符合预期)。
阴影层(Custom Shadow Layer)在所有路径下均影响阴影,但无选项时可能继承默认行为。
所有路径下,Culling Mask生效,光照/阴影随掩码变化隐藏/显示。
例外:Forward+路径下,用户观察到“仅阴影变化”,需进一步验证是否为配置差异。
烘焙后,Culling Mask不生效(光照/阴影始终显示),可能是Unity优化策略或Bug(REF2/REF3提及)。
未烘焙时,行为与动态物体一致(但静态物体通常用于烘焙场景)。
Culling Mask同时影响光照与阴影。
适合简单场景,对动态物体支持完善。
用户反馈Culling Mask仅影响阴影,需确认是否为配置差异(如阴影层单独设置)。
优化了大量光源的性能,但行为可能因版本而异。
Culling Mask影响光照与阴影,静态烘焙物体仍不受影响。
适合复杂光照场景,但开销较高。
非Baked模式:动态物体行为正常,静态物体需烘焙。
Baked模式:静态物体光照/阴影固定,动态物体不受影响。
阴影与光照效果介于实时与烘焙之间,需注意混合模式配置(如Shadowmask)。
光照/阴影结果存储在光图(Lightmap)中,运行时不受Culling Mask影响(设计如此或Bug)。
可能是Unity特性(优化静态物体渲染)或已知Bug(REF2/REF3)。
建议:若需动态控制静态物体光照,可尝试:
使用Light Layers替代Culling Mask。
将物体标记为非Static,但会失去烘焙优化。
需验证是否因阴影层配置或版本差异导致“仅阴影变化”。
建议:检查Light组件的Shadow Type和Custom Shadow Layer设置。
确保在URP Global Settings中添加Rendering Layer(3D),否则配置不生效。
创建非Static物体,调整Culling Mask,观察光照/阴影是否隐藏。
标记物体为Static,烘焙光照后修改Culling Mask,确认光照/阴影是否变化。
在URP Asset中切换Forward/Forward+/Deferred,重复上述测试。
确保Light组件和Camera的Rendering Layers配置一致。
总结:URP中光照/阴影的行为受物体静态属性、渲染路径及光照类型共同影响。静态物体烘焙后Culling Mask不生效可能是预期行为或Bug,动态物体则符合配置逻辑。建议根据场景需求选择渲染路径,并利用Light Layers实现更灵活的光照控制。