相切空间法线比对象空间法线有什么优势?


17

计算凹凸贴图的切线空间中的法线与对象空间中的法线有什么优势?


2
您还可以在此处找到一些信息:切线法线贴图。它包含图片,也许对某些人来说这样更清晰。

Answers:


29

一切,真的。

对象空间法线的唯一好处是简单。它们更易于使用。

切线空间法线需要切线空间基础,但提供:

  1. 对不同的表面使用相同纹理的能力。对象空间法线贴图只能在创建它们的表面上使用。通过对切线空间中的法线进行正则化,您可以自由地对不同的曲面使用相同的凹凸纹理。只要曲面具有切线空间基础,您就可以获得合理的结果。

  2. 修改纹理贴图的功能,例如使用UV动画。由于对象空间法线贴图将法线存储在对象空间中,因此您不能仅将0.5添加到所有纹理坐标并期望从纹理中获取适当的法线。您可以使用切线空间凹凸贴图。

  3. 较小的组件表示。对象空间法线贴图必须具有3个组成部分;您不能删除其中一个并在着色器中重新构造它。切线空间法线将始终具有正Z分量,因此您只能存储法线的XY。因此,您可以通过使用GL_RG16_SNORMGL_RG16F 格式(每texel 32位)来获得更高的精度,或者通过使用RG压缩的图像格式GL_COMPRESSED_SIGNED_RG_RGTC1​每texel 8位)来采用压缩。您可以尝试在对象空间法线贴图上使用S3TC,但祝您一切顺利。

使用对象空间法线贴图所获得的绝对绝对值是更少的计算时间(不必将光照方向转换为切线空间,也不必将法线从切线空间转换为模型空间)。但这没什么大不了的,尤其是在如今延迟渲染器四处运行的情况下。


1

部分答案,作为Nicol答案的补充。

有很多优势。根据我发现的一篇文章(在评论中也有链接),仍然存在一些轻微的缺点。但是,对于那些习惯于解决这些问题的艺术家,或者对于某种程度上不太容易受到这些挑战影响的对象而言,这种劣势可能影响不大。

关于切线空间法线贴图的文章

尽管良好的实现可以限制问题,但是法线贴图的基本思想有其缺陷。对于艺术家来说,解开复杂的模型并将接缝放置在暴露程度较小的区域可能很棘手。下图显示了对象空间法线贴图(左)和切线空间法线贴图(右)。在这里,对象空间的法线贴图所引起的问题要少得多,因为双线性滤波使边缘变软,并且平面仅具有一个法线,因此是完美的平面。由于阴影与UV布局和三角形变形无关,因此左侧的接缝不太明显。

对象空间法线贴图:

对象空间法线贴图

切线空间法线贴图:

切线法线贴图

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.