下載源程序
幾何檢測(6) 摘要: 前面都提到了cAABB3類,它代表的是3D中的軸對齊矩形邊界框(AABB),這里給出類的完整定義和實現。
幾何檢測(5) 摘要: 檢測兩個靜止AABB的相交性是很簡單的,只需要在每一維上單獨檢查它們的重合程度即可。如果在所有維上都沒有重合,那么這兩個AABB就不會相交。intersectAABBs()就是用這項技術來實現的。
AABB間的動態測試稍微復雜一些。考慮一個由極值點smin和smax定義的靜止AABB和一個由mmin和mmax定義的運動AABB。運動AABB的運動由向量d給出,t從0變換到1。
幾何檢測(4) 摘要:
球和平面的靜態檢測相對容易一些,可以用公式12.14來計算球心到平面的距離。如果距離小于球半徑,那么它們相交。實際上還能作一種更靈活的檢測,這種檢測把相交分為球完全在平面正面,完全在背面,跨平面等三種情況。仔細分析程序清單13.2:
幾何檢測(3) 摘要: 考慮3D中由極值點pmin和pmax定義的AABB和以標準方式定義的平面:p . n =
d,其中n為單位向量,平面與AABB必須處于相同的坐標系中。
一種簡單的靜態測試方法是,計算矩形邊界框頂點和n的點積,通過比較點積和d,來檢測邊界框的頂點是否完全在平面的一邊,或是在另外一邊。如果所有點積都大于d,那么整個邊界框就在平面的正面所指的一側;如果所有的點積都小于d,那么整個邊界框就在平面的反面所指的一側。
幾何檢測(2) 摘要:
相交性測試的目的是檢測兩個幾何圖元是否相交,在某些情況下還要求出相交部分,這些基本測試構成了碰撞檢測系統的基礎。碰撞檢測用來防止物體互相穿越,或者使物體看起來好像互相被彈開。
我們將討論兩種不同類型的相交性測試:
(1)靜態測試檢測兩個靜止圖元是否相交。它是一種布爾型測試----也就是說,測試結果只有真(相交時)或假(不相交時)。如果兩個圖元相交,則可以獲取更多的信息。但一般來說,這種測試的目的只是返回一個布爾值。
幾何檢測(1) 摘要: 考慮2D中的直線L,L由所有滿足p . n = d的點p組成。
其中n是單位向量,我們的目標是對任意點q,找出直線L上距q距離最短的點q',它是q投影到L上的結果。讓我們畫一條經過q平行于L的輔助線
M,如圖13.1所示。設nM和dM分別為直線方程的法向量和d值。因為L和M平行,所以它們的法向量相等:nM=n。又因為q在M上,所以dM為 q.n。