Math 三角形法线指向何处,以便正确映射?

Math 三角形法线指向何处,以便正确映射?,math,opengl,texture-mapping,Math,Opengl,Texture Mapping,这是我到目前为止所拥有的。 我有一个三维模型,我做了一个三角形网格。计算法线并将其应用于模型。 我想在三角形中应用不同的纹理。我也有我需要的所有纹理的方向向量 对于映射,我这样做: 我只是用每个纹理的纹理方向向量计算每个三角形法线的点积,然后根据点积的计算开始比较哪个纹理合适 但我意识到这并不像我想象的那样直截了当。因为两个或两个以上不同的三角形在3D空间中可能几乎处于相同的方向,这意味着一个可能朝向我,另一个可能朝向相反的方向(可能平行但方向不同) 我认为更好的问题是如何使用计算出的点积来区分

这是我到目前为止所拥有的。 我有一个三维模型,我做了一个三角形网格。计算法线并将其应用于模型。 我想在三角形中应用不同的纹理。我也有我需要的所有纹理的方向向量

对于映射,我这样做:
我只是用每个纹理的纹理方向向量计算每个三角形法线的点积,然后根据点积的计算开始比较哪个纹理合适

但我意识到这并不像我想象的那样直截了当。因为两个或两个以上不同的三角形在3D空间中可能几乎处于相同的方向,这意味着一个可能朝向我,另一个可能朝向相反的方向(可能平行但方向不同)


我认为更好的问题是如何使用计算出的点积来区分三角形的面,以便我知道应该使用哪个图像/纹理?

如果三角形朝向相反的方向,法线也将朝向相反的方向,并且点积将具有相反的符号。因此,点积为您提供了足够的信息来区分对面。我想不出一个简单的测试能比dot产品给出更好的结果。

我想问这个问题会是一个更好的主意。但是我不能建议你把它放在那里,也许你可以自己移动它?@K_B我很抱歉。我该如何移动它?只需在该论坛上创建相同的问题。或者看看下面的答案,它可能就是你要找的答案!我还没真正明白你的意图。你想为每一个三角形选择一个纹理,根据哪个“纹理方向”最接近三角形法线的方向?让我们取一个面向我的正态(n),假设我有正朝向三角形的纹理的正态,(i)。如果我做“n”点“I”和“n”点“n”,哪个结果是正的和负的?正如我之前所说的,我的数学能力很弱。看点积最简单的方法是:a.b=|a | | b | cos(x),其中x是它们之间的角度。因为震级是无符号的,所以符号仅由余弦决定。cos(x)在-90和+90度之间为正,在该范围外为负。正交向量的点积为零,指向大致相同方向的向量的点积为正,点积为负。在你的例子中,据我所知,法线n和I指向相反的方向?所以点积是负数。谢谢你。。。我不知道为什么我从来没有想过。