From f742f40169399926d1e254e819307db4e193220f Mon Sep 17 00:00:00 2001 From: ud18010 Date: Wed, 15 Jul 2026 10:53:12 +0800 Subject: [PATCH] XPbr: remap sphere-map normal decode to signed range for ModelTranslator --- Client/Assets/Game/shader/XShader/XPbr_Base.hlsl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Client/Assets/Game/shader/XShader/XPbr_Base.hlsl b/Client/Assets/Game/shader/XShader/XPbr_Base.hlsl index 6744f6d7..23592b91 100644 --- a/Client/Assets/Game/shader/XShader/XPbr_Base.hlsl +++ b/Client/Assets/Game/shader/XShader/XPbr_Base.hlsl @@ -65,9 +65,10 @@ struct Varyings UNITY_VERTEX_OUTPUT_STEREO }; -//解码 RG 两通道球面映射压缩法线(与 XTex 的 MixTex 资源格式一致) +//解码 RG 两通道球面映射压缩法线(有符号,ModelTranslator 工具编码:enc = n.xy/sqrt(2*(1+n.z)) * 0.5 + 0.5) float3 DecodeSphereMap(float2 encoded) { + encoded = encoded * 2.0 - 1.0; //rg 无符号存储,重映射回有符号 float4 nn = float4(encoded, 1, -1); float l = dot(nn.xyz, -nn.xyw); nn.z = l;