Unity 2021.3.20内置ShaderGraph线性雾密度反转及远景雾色异常
Unity 2021.3.20 ShaderGraph 12.1.10线性雾节点异常修复
在Unity 2021.3.20版本搭配内置ShaderGraph 12.1.10时,使用Linear Fog(线性雾)节点会出现两个明显异常:
- 雾密度反转:近处物体雾效过重,远处物体雾效反而变浅
- 远景物体雾色显示与设置不符
相关场景及节点设置截图:



可行修复方案
1. 手动构建线性雾计算逻辑
弃用内置Linear Fog节点,自行实现雾效计算:
- 计算相机到像素的世界空间距离:将
World Position节点输出减去Camera Position节点输出,接入Length节点得到距离值 - 计算雾因子:用公式
(Far Distance - Distance) / (Far Distance - Near Distance),其中Far Distance和Near Distance对应雾的起止距离参数 - 混合颜色:使用
Lerp节点,输入物体原色、雾色,以及saturate(雾因子)的反转值(即1 - saturate(雾因子)),修正密度反转问题
2. 校验全局与ShaderGraph参数一致性
- 检查Project Settings > Quality > Fog中的Near/Far Distance参数,确保和ShaderGraph中使用的参数完全一致
- 确认全局雾色与ShaderGraph内设置的雾色相同,避免颜色空间转换导致的显示偏差
3. 升级版本修复bug
该问题属于特定版本的已知bug,官方在ShaderGraph 12.1.11及后续版本、Unity 2021.3.21及后续补丁版本中已修复线性雾节点的计算逻辑错误,升级对应版本即可解决。
内容的提问来源于stack exchange,提问作者Iroqas
相关产品推荐
相关产品推荐

