XPbr: remap sphere-map normal decode to signed range for ModelTranslator

This commit is contained in:
ud18010
2026-07-15 10:53:12 +08:00
parent 005cc8f699
commit f742f40169
@@ -65,9 +65,10 @@ struct Varyings
UNITY_VERTEX_OUTPUT_STEREO 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) float3 DecodeSphereMap(float2 encoded)
{ {
encoded = encoded * 2.0 - 1.0; //rg 无符号存储,重映射回有符号
float4 nn = float4(encoded, 1, -1); float4 nn = float4(encoded, 1, -1);
float l = dot(nn.xyz, -nn.xyw); float l = dot(nn.xyz, -nn.xyw);
nn.z = l; nn.z = l;