2012-12-11 59 views
0

這是我到目前爲止。 我有一個3D模型,我做了一個三角形網格。也計算和應用法線模型。 我想在三角形中應用不同的紋理。我也有我需要的所有紋理的方向矢量。三角形的正常指向在哪裏,以便我可以正確映射?

對於映射,我這樣做:
我只是用每個紋理的紋理方向向量計算每個三角形法線的點積,並開始比較以查看基於點積計算的哪個紋理可以適用。

但是我意識到它並不像我想的那樣直截了當。因爲兩個或更多不同的三角形可能在3D空間中處於幾乎相同的方向,這意味着一個可能朝向我,另一個可能朝向相反的方向(可能是平行但不同的方向)。

我認爲一個更好的問題是如何使用計算出的點積來區分三角形的面,所以我知道我知道應該使用哪個圖像/紋理?

+0

我想在http://math.stackexchange.com/上問這個問題會更好。不過,我不能建議將它放在那裏,也許你可以自己移動它? –

+0

@K_B我很抱歉。我如何移動它? – jbchichoko

+0

只需在該論壇上創建相同的問題即可。或者看看下面的答案,它可能是你正在尋找的那個! –

回答

1

如果三角形面朝相反的方向,則法線也將面向相反的方向,而點積將具有相反的符號。因此,點積爲您提供足夠的信息來區分相反的面。我想不出一個簡單的測試,它可以給出比點積更好的結果。

+0

我們來看一個面向我的正常(n),假設我有正在朝着那個三角形看的紋理(i)。如果我做「n」點「我」和「n」點「n」,哪個結果是正面和負面? 正如我以前說過的,我數學很弱。 – jbchichoko

+0

查看點積的簡單方法是: a.b = | a || b | cos(x) 其中x是它們之間的角度。由於幅度無符號,所以符號僅由余弦確定。 cos(x)在-90到+90度之間爲正值,在該範圍之外爲負值。正交向量具有零點積,指向大致相同方向的向量具有正點產品,相反方向負點產品。 在你的例子中,據我所知,法線n和i指向相反的方向?所以點積是負的。 –

+0

ohhhhh謝謝......我不知道爲什麼我從來沒有想到這一點。 – jbchichoko

相關問題