我讀了this教程aabb平面測試,並且我無法理解所述的「優化」aabb平面測試。測量軸對齊盒(AAB)的截錐相交
在 「幾何方法 - 測試盒II」,我明白了一切,直到這條線:
假設有其分量x,y和z XMIN 和XMAX之間變化的一個AAB; ymin和ymax;和zmin和zmax。 正頂點p的組件選擇如下:...
我也沒有得到後來的代碼。 我的AABB對象由它們的minVertex,maxVertex參數定義。
你能解釋我作者是什麼意思嗎?
我讀了this教程aabb平面測試,並且我無法理解所述的「優化」aabb平面測試。測量軸對齊盒(AAB)的截錐相交
在 「幾何方法 - 測試盒II」,我明白了一切,直到這條線:
假設有其分量x,y和z XMIN 和XMAX之間變化的一個AAB; ymin和ymax;和zmin和zmax。 正頂點p的組件選擇如下:...
我也沒有得到後來的代碼。 我的AABB對象由它們的minVertex,maxVertex參數定義。
你能解釋我作者是什麼意思嗎?
考慮以下圖片,其中對角線PS
(假定)平行於normal
向量(順便說一下,這是本教程稱爲AAB
的情況)。這張照片代表了這個想法更易於解釋和理解的2D版本。
的p-vertex
是,根據定義,與該法線方向進一步對準的一個。這意味着,你必須決定哪些以下四個載體之一,還與正常排列:
R - Q, Q - R, P - S or S - P (1)
在這種情況下,答案是S - P
,這意味着S
是p-vertex
和P
的n-vertex
。但問題是如何以編程方式檢測此問題。那麼,兩個向量之間的dot product就會測量其中一個向另一個向量的投影,所以問題可以重申爲:(1)中的哪個向量具有最大點積與正常的(xn, yn)
?
這裏有四點產品:
(xn, yn).(R - Q) = xn(x1 - x2) + yn(y1 - y2)
(xn, yn).(Q - R) = xn(x2 - x1) + yn(y2 - y1)
(xn, yn).(P - S) = xn(x1 - x2) + yn(y2 - y1)
(xn, yn).(S - P) = xn(x2 - x1) + yn(y1 - y2)
所以,我們正在尋找一個是使之和的兩方面積極的一個,這是
xn > 0
選擇x2 - x1
(>0
)否則x1 - x2
(<0
)yn > 0
select y2 - y1
(>0
),否則y1 - y2
(<0
)的原因是標誌+
次+ = +
和-
倍- = +
規則(。)
所有這一切都轉化爲
p-vertex = (x1, y1)
xn > 0
,改變x1
與x2
(有效離開p-vertex = (x2, y1)
)yn > 0
,改變y1
與y2
(有效離開p-vertex = (x*, y2)
)(在步驟3中,x*
是x1
或x2
取決於SETP 2的結果)
這些參數保持如果是在3個維度中有效。唯一的區別是你必須在每個地方添加z
座標。
有趣的是,我應該從作者寫的短代碼片段中理解這一切嗎? :P。謝謝! – Pilpel
@Pilpel不要責怪作者。他們可能知道他們可以在令人驚歎的StackOverflow社區接力。實際上,每個作者都應該依靠它。 –