2012-07-05 48 views
3

OpenGL着色器中的凹凸映射通常在tangent space中完成,其中法线,切线和副法线作为基向量。如何计算网格曲面上的一致切线向量?

根据我的书,OpenGL着色语言,需要的是,基向量是consistently oriented across the surface of the object的光照方程正确插值。它还通过一致的定义,这意味着与法线贴图坐标相一致。

因此,给定任意网格的顶点位置,法线和法线贴图坐标,如何计算一致的切线向量?

回答

5

计算切线和双切线向量,使它们正确定位纹理坐标,并正确匹配法线实际上相当复杂。

我在过去的一个很好用的代码示例是这一个: http://www.terathon.com/code/tangent.html

Crytek公司也有关于这一主题的演讲。他们的实现还解决了切线空间计算的许多常见问题: http://crytek.com/cryengine/presentations/triangle-mesh-tangent-space-calculation

+0

感谢您的链接。我会检查出来。 – 2012-07-05 22:36:38