爲什麼大多數(如果不是所有的)碰撞檢測算法要求每個2D主體都有一個AABB僅用於廣義相位?軸對齊邊界框vs邊界橢圓
在我看來,就像簡單地在2D物體的質心處放置一個圓,並將半徑延伸到圓包圍整個身體的位置將是最佳的。在身體旋轉後,不需要更新,寬廣的重疊計算會更快。正確?
獎勵:
會的邊界橢圓是寬泛階段計算也實用,因爲它會更好地代表長,瘦的形狀?還是需要進行大量的計算,否定了廣泛的目的?
爲什麼大多數(如果不是所有的)碰撞檢測算法要求每個2D主體都有一個AABB僅用於廣義相位?軸對齊邊界框vs邊界橢圓
在我看來,就像簡單地在2D物體的質心處放置一個圓,並將半徑延伸到圓包圍整個身體的位置將是最佳的。在身體旋轉後,不需要更新,寬廣的重疊計算會更快。正確?
獎勵:
會的邊界橢圓是寬泛階段計算也實用,因爲它會更好地代表長,瘦的形狀?還是需要進行大量的計算,否定了廣泛的目的?
邊界框由線性不等式約束表示,而圓和橢圓需要二次不等式約束。一個人可以同時工作,但線性情況一如既往,算法解決要簡單得多(它只涉及矩陣乘法)。如果邊界框與世界座標軸對齊,則所有檢查看起來像xa - xb > dxa + dxb
,ya - yb > dya + dyb
和za - zb > dza + dzb
,其中d$i$j
是在$i$
方向上圍繞對象$j
的邊界框的尺寸。
但是,橢圓碰撞檢測是正在完成。數學難度更大,實施和計算工作可能不值得節省。無論如何,我搜索了谷歌學者的「橢圓碰撞檢測」,至少有兩篇論文在第一頁似乎正是這個話題:http://hub.hku.hk/bitstream/10722/47091/1/121854.pdf?accept=1和ftp://crack.seismo.unr.edu/downloads/russell/doven_2005_neighbor_list_collision_driven_MD_II.PDF