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

标签 opengl

OpenGL 着色器中的凹凸贴图通常在切线空间中完成,其中法线、切线和副法线作为基向量。

根据我的书OpenGL着色语言,要求基向量在对象表面上一致定向,以便照明方程正确插值。它还定义了一致,意味着与法线贴图纹理坐标一致。

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

最佳答案

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

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

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

关于opengl - 如何计算网格表面上一致的切向量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11352138/

相关文章:

OpenGL 为纹理设置透明颜色

c++ - 体素...老实说,我需要知道从哪里开始

windows - glFlush() 在具有透明背景的窗口上需要很长时间

c++ - GLSL隔行扫描

c++ - OpenGL 窗口切断模型 View

c++ - 点不会通过 OpenGl 中的键盘输入移动

c - 我应该先翻译还是先旋转?

c++ - 旋转和平移显示列表

c++ - OpenGL 方 block 和箭头

opengl - 通过处理纸上的 2d 草图生成 3d 对象