法线¶
法线贴图压缩¶
双通道¶
Normal Map 保存的是 TBN 空间下的归一化法线,z 分量是大于 0 的(接近 1),所以可以只保存 x 和 y 分量。1
z 分量用下面的公式就能算出:
\[ z = \sqrt{1 - x^2 - y^2} \]
// x、y 分别存在 r、g 通道
float3 normalTBN = float3(normalMap.rg, 0);
normalTBN.z = sqrt(1 - dot(normalTBN.xy, normalTBN.xy));
球极投影¶
双通道保存是以精度为代价的。主要是 gpu 插值的原因。
G-buffer 法线编码¶
Octahedron¶
相关文章