Unity侧方放置光源时物体底部比顶部更暗的原因及解决方法
这一现象属于引擎光照系统的常规可配置特性,并非渲染错误,以下是常见诱因及对应解决方案:

诱因1:半球环境光默认配置(最高概率)
绝大多数游戏引擎默认使用半球环境光模拟全局漫反射光照,该光照会为天空方向(球体顶部)、地面方向(球体底部)分别设置不同的环境光强度与颜色,默认配置下地面方向的环境光强度远低于天空方向。
星球暗面不受主光源(太阳)直射,仅受环境光照明,自然会出现顶部偏亮、底部偏暗的表现。
对应解决方案:
- Unity引擎:打开
Window > Rendering > Lighting Settings,找到「Environment」分类,将Ambient Source从Hemisphere修改为Color,统一设置全局环境光的颜色与强度;也可以直接将Ambient Ground Color调整为和Ambient Sky Color完全一致。 - Unreal Engine引擎:打开
World Settings > Lightmass,找到「Environment Light」分组,将上下环境光色调整为相同数值,或者直接关闭半球环境光,改用恒定颜色的全局环境光。
诱因2:环境光遮蔽(AO)异常采样
如果星球模型底部存在冗余面、法线方向错误,或者全局AO的采样半径设置过大,会导致暗面底部被误判定为遮挡区域,被额外压暗。
对应解决方案:
- 先检查星球模型的法线是否全部统一朝向外侧,底部无多余重合面
- 临时关闭全局AO效果验证问题是否消失,若消失则调低AO的采样半径与强度,或者针对星球模型单独关闭AO效果即可。
诱因3:静态光照烘焙残留
若你开启了静态光照烘焙,场景中存在未清理的静态地面几何体,烘焙时地面的深色反弹光照会被记录到星球的光照贴图上,导致底部持续偏暗。
对应解决方案:
删除场景中不需要的静态几何体,清空已生成的光照贴图后重新烘焙,或者直接将星球的光照模式改为Realtime/Movable,不受预烘焙光照影响。
内容的提问来源于stack exchange,提问作者Werabird
相关产品推荐
相关产品推荐

