OpenGL 着色器中的凹凸映射通常在 中完成tangent space
,它具有法线、切线和副法线作为基向量。
根据我的书OpenGL Shading Language,要求基向量consistently oriented across the surface of the object
用于照明方程正确插值。它还定义了一致,它意味着与法线贴图纹理坐标一致。
因此,给定任意网格的顶点位置、法线和法线贴图纹理坐标,我如何计算一致的切向量?
OpenGL 着色器中的凹凸映射通常在 中完成tangent space
,它具有法线、切线和副法线作为基向量。
根据我的书OpenGL Shading Language,要求基向量consistently oriented across the surface of the object
用于照明方程正确插值。它还定义了一致,它意味着与法线贴图纹理坐标一致。
因此,给定任意网格的顶点位置、法线和法线贴图纹理坐标,我如何计算一致的切向量?
计算切线和双切线向量以使它们与纹理坐标正确定向并正确匹配法线实际上相当复杂。
我过去使用的一个很好的代码示例是这个: http ://www.terathon.com/code/tangent.html
Crytek 也有关于这个主题的演讲。他们的实现还解决了切线空间计算的许多常见问题:http: //crytek.com/cryengine/presentations/triangle-mesh-tangent-space-calculation