如何计算网格表面上的一致切向量?

Ant*_*ist 3 opengl

OpenGL着色器中的凹凸贴图通常在tangent space其中进行,其具有法线,切线和副法线作为基矢量.

根据我的书OpenGL着色语言,要求基本向量consistently oriented across the surface of the object用于照明方程以正确插值.它还定义了一致,它意味着与法线贴图纹理坐标一致.

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

Jus*_*ers 5

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

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

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