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

时间:2012-07-05 20:32:07

标签: opengl

OpenGL着色器中的凹凸贴图通常在tangent space中完成,它具有法线,切线和副法线作为基矢量。

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

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

1 个答案:

答案 0 :(得分:5)

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

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

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