XShader: 运行时环境光仅在全局开启后覆盖 bakedGI,编辑器保留场景 SH
修复编辑器预览中 XPbr/XTex/XTerrain 比 URP Lit 亮的问题: 旧写法无条件把 bakedGI 覆盖成 SampleXRuntimeAmbient,未运行 Game.cs 时 退回硬编码的高强度三色环境光(sky≈1.45),远亮于场景真实环境光探针。 现改为 _XRuntimeAmbientEnabled 开启后才覆盖,运行时行为不变。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
a405333bf7
commit
ea93b3b217
@@ -122,6 +122,9 @@ void InitializeInputData(Varyings input, half3 normalTS, out InputData inputData
|
|||||||
#else
|
#else
|
||||||
inputData.bakedGI = SampleSH(inputData.normalWS);
|
inputData.bakedGI = SampleSH(inputData.normalWS);
|
||||||
#endif
|
#endif
|
||||||
|
// 仅在运行时全局环境光开启后才覆盖(Game.cs 设置);否则保留场景自身 SH/光照贴图,
|
||||||
|
// 避免编辑器预览比 URP Lit 亮(旧写法无条件覆盖成硬编码的高强度三色环境光)
|
||||||
|
if (_XRuntimeAmbientEnabled > 0.5h)
|
||||||
inputData.bakedGI = SampleXRuntimeAmbient(inputData.normalWS);
|
inputData.bakedGI = SampleXRuntimeAmbient(inputData.normalWS);
|
||||||
|
|
||||||
inputData.normalizedScreenSpaceUV = GetNormalizedScreenSpaceUV(input.positionCS);
|
inputData.normalizedScreenSpaceUV = GetNormalizedScreenSpaceUV(input.positionCS);
|
||||||
|
|||||||
@@ -147,6 +147,9 @@ void InitializeInputData(Varyings input, half3 normalTS, out InputData inputData
|
|||||||
#else
|
#else
|
||||||
inputData.bakedGI = SampleSH(inputData.normalWS);
|
inputData.bakedGI = SampleSH(inputData.normalWS);
|
||||||
#endif
|
#endif
|
||||||
|
// 仅在运行时全局环境光开启后才覆盖(Game.cs 设置);否则保留场景自身 SH/光照贴图,
|
||||||
|
// 避免编辑器预览比 URP Lit 亮(旧写法无条件覆盖成硬编码的高强度三色环境光)
|
||||||
|
if (_XRuntimeAmbientEnabled > 0.5h)
|
||||||
inputData.bakedGI = SampleXRuntimeAmbient(inputData.normalWS);
|
inputData.bakedGI = SampleXRuntimeAmbient(inputData.normalWS);
|
||||||
|
|
||||||
inputData.normalizedScreenSpaceUV = GetNormalizedScreenSpaceUV(input.positionCS);
|
inputData.normalizedScreenSpaceUV = GetNormalizedScreenSpaceUV(input.positionCS);
|
||||||
|
|||||||
@@ -149,6 +149,9 @@ void InitializeInputData(Varyings input, half3 normalTS, out InputData inputData
|
|||||||
#else
|
#else
|
||||||
inputData.bakedGI = SampleSH(inputData.normalWS);
|
inputData.bakedGI = SampleSH(inputData.normalWS);
|
||||||
#endif
|
#endif
|
||||||
|
// 仅在运行时全局环境光开启后才覆盖(Game.cs 设置);否则保留场景自身 SH/光照贴图,
|
||||||
|
// 避免编辑器预览比 URP Lit 亮(旧写法无条件覆盖成硬编码的高强度三色环境光)
|
||||||
|
if (_XRuntimeAmbientEnabled > 0.5h)
|
||||||
inputData.bakedGI = SampleXRuntimeAmbient(inputData.normalWS);
|
inputData.bakedGI = SampleXRuntimeAmbient(inputData.normalWS);
|
||||||
|
|
||||||
inputData.normalizedScreenSpaceUV = GetNormalizedScreenSpaceUV(input.positionCS);
|
inputData.normalizedScreenSpaceUV = GetNormalizedScreenSpaceUV(input.positionCS);
|
||||||
|
|||||||
Reference in New Issue
Block a user