属性 "vertex texcoord" 在计算正切时应该有什么 Space
What property the "vertex texcoord" should have when calculating tangent Space
我正在使用 OpenMesh 处理三角形网格。
我已经完成了网格参数化以设置顶点 texcoord,我对顶点 texcoord 的全部理解都是从那里获得的。如果我没有弄错的话,它应该是顶点的可变值。
但现在我想计算每个顶点的切线 space,所有教程都谈论 "vertex texcoord" 就像它是固定的 属性 到顶点。
这是我读过的 tutorials,上面写着
If the mesh we are working on doesn't have texcoord we'll skip the Tangent Space phase, because is not possible to create an arbitrary UV Map in the code, UV Maps are design dependents and change the way as the texture is made.
那么,属性 "texcoord" 在计算正切时应该有什么 Space
谢谢!
不清楚你到底在问什么,希望这对你的理解有所帮助。
每个顶点的纹理坐标 (texcoord) 在模型设计阶段设置并随网格一起加载。它们包含顶点在纹理中映射到的 UV 坐标。
切线 space 由每个点的切线、副切线和法线 (TBN) 向量组成。法线要么加载到网格中,要么可以通过对顶点相交的三角形的法线进行平均来计算。切线是texcoord的U坐标变化最大的方向,即模型-space位置对U的偏导数。同理,副切线是位置对V的偏导数。正切和副切线可以与每个面的法线一起计算,然后在顶点处平均,就像法线一样。
对于平面,切线和副切线垂直于构造法线。然而,由于顶点处的平均,它们可能不再垂直。同样,即使对于平面,切线也可能不垂直于双切线(例如,想象一个倾斜的棋盘纹理映射)。但是,为了简化 TBN 矩阵的求逆,有时会用正交矩阵甚至四元数来逼近。即使此近似值对倾斜贴图纹理无效,它仍可能给出合理的结果。当假定正交性时,双切线可以计算为切线和法线之间的叉积。
我正在使用 OpenMesh 处理三角形网格。
我已经完成了网格参数化以设置顶点 texcoord,我对顶点 texcoord 的全部理解都是从那里获得的。如果我没有弄错的话,它应该是顶点的可变值。
但现在我想计算每个顶点的切线 space,所有教程都谈论 "vertex texcoord" 就像它是固定的 属性 到顶点。
这是我读过的 tutorials,上面写着
If the mesh we are working on doesn't have texcoord we'll skip the Tangent Space phase, because is not possible to create an arbitrary UV Map in the code, UV Maps are design dependents and change the way as the texture is made.
那么,属性 "texcoord" 在计算正切时应该有什么 Space
谢谢!
不清楚你到底在问什么,希望这对你的理解有所帮助。
每个顶点的纹理坐标 (texcoord) 在模型设计阶段设置并随网格一起加载。它们包含顶点在纹理中映射到的 UV 坐标。
切线 space 由每个点的切线、副切线和法线 (TBN) 向量组成。法线要么加载到网格中,要么可以通过对顶点相交的三角形的法线进行平均来计算。切线是texcoord的U坐标变化最大的方向,即模型-space位置对U的偏导数。同理,副切线是位置对V的偏导数。正切和副切线可以与每个面的法线一起计算,然后在顶点处平均,就像法线一样。
对于平面,切线和副切线垂直于构造法线。然而,由于顶点处的平均,它们可能不再垂直。同样,即使对于平面,切线也可能不垂直于双切线(例如,想象一个倾斜的棋盘纹理映射)。但是,为了简化 TBN 矩阵的求逆,有时会用正交矩阵甚至四元数来逼近。即使此近似值对倾斜贴图纹理无效,它仍可能给出合理的结果。当假定正交性时,双切线可以计算为切线和法线之间的叉积。