樹(shù),并且給定最大樹(shù)深度和葉子節(jié)點(diǎn)所包含的幾何元素的個(gè)數(shù);
[0028]步驟5:將上述步驟得到的兩個(gè)物體的所述包圍盒樹(shù)的當(dāng)前節(jié)點(diǎn)兩兩之間進(jìn)行檢測(cè),判斷是否發(fā)生碰撞,若發(fā)生碰撞,轉(zhuǎn)向步驟6,否則轉(zhuǎn)向步驟7 ;
[0029]步驟6:若所述當(dāng)前結(jié)點(diǎn)為葉子結(jié)點(diǎn),記下該結(jié)點(diǎn),返回,并檢測(cè)是否發(fā)生碰撞;若所述當(dāng)前結(jié)點(diǎn)不是葉子結(jié)點(diǎn),則取所述當(dāng)前結(jié)點(diǎn)的所有子結(jié)點(diǎn)作為所述包圍盒樹(shù)的當(dāng)前結(jié)點(diǎn),遞歸執(zhí)行步驟5 ;
[0030]步驟7:若所述當(dāng)前結(jié)點(diǎn)無(wú)未檢測(cè)的兄弟結(jié)點(diǎn),表明未發(fā)生碰撞,記下所述當(dāng)前結(jié)點(diǎn)后,返回;若仍有未檢測(cè)的兄弟結(jié)點(diǎn),則依次將下所述兄弟結(jié)點(diǎn)作為所述包圍盒樹(shù)的當(dāng)前結(jié)點(diǎn);遞歸執(zhí)行步驟5。
[0031]較佳地,所述兩個(gè)待測(cè)物體為可以劃分成多個(gè)四面體,所述四面體之間具有相關(guān)性,且相關(guān)性較低,由此將兩個(gè)復(fù)雜的物體間的碰撞檢測(cè)轉(zhuǎn)化為系列四面體間的并行碰撞檢測(cè),在保證高精度的前提條件下,有效的滿足了碰撞檢測(cè)的實(shí)時(shí)要求,同時(shí)也解決了一般碰撞檢測(cè)算法只適用于凸多面體的不足。
[0032]較佳地,所述步驟6中檢測(cè)是否發(fā)生碰撞的檢測(cè)方法為空間分解法,空間分解法的檢測(cè)更為精確。
[0033]較佳地,所述空間分解法為八叉樹(shù)算法或者k-d樹(shù)算法或者BSP樹(shù)算法。
[0034]較佳地,所述包圍盒為AABB包圍盒或者方向包圍盒或者固定方向凸包圍盒或者包圍球。
[0035]較佳地,設(shè)計(jì)所述步驟4的出口為遞歸深度超過(guò)了所述給定的最大樹(shù)深度。
[0036]較佳地,設(shè)計(jì)所述步驟4的出口為所述子節(jié)點(diǎn)所包含的基本幾何元素個(gè)數(shù)少于所述給定的葉子節(jié)點(diǎn)所包含幾何元素個(gè)數(shù)的最小值。
[0037]較佳地,設(shè)計(jì)所述步驟4的出口為所述左、右子節(jié)點(diǎn)至少有一個(gè)包含的幾何元素個(gè)數(shù)與其父節(jié)點(diǎn)所包含幾何元素個(gè)數(shù)相差在10以下。
[0038]較佳地,所述包圍盒樹(shù)的每一個(gè)節(jié)點(diǎn)包含兩個(gè)子對(duì)象,分別為多面體子對(duì)象和包圍盒子對(duì)象,多面體子對(duì)象用于精確的碰撞檢測(cè),而包圍盒子對(duì)象用于快速、粗略的檢測(cè)。
[0039]可以理解的是,雖然本發(fā)明已以較佳實(shí)施例披露如上,然而上述實(shí)施例并非用以限定本發(fā)明。對(duì)于任何熟悉本領(lǐng)域的技術(shù)人員而言,在不脫離本發(fā)明技術(shù)方案范圍情況下,都可利用上述揭示的技術(shù)內(nèi)容對(duì)本發(fā)明技術(shù)方案作出許多可能的變動(dòng)和修飾,或修改為等同變化的等效實(shí)施例。因此,凡是未脫離本發(fā)明技術(shù)方案的內(nèi)容,依據(jù)本發(fā)明的技術(shù)實(shí)質(zhì)對(duì)以上實(shí)施例所做的任何簡(jiǎn)單修改、等同變化及修飾,均仍屬于本發(fā)明技術(shù)方案保護(hù)的范圍內(nèi)。
【主權(quán)項(xiàng)】
1.一種基于包圍盒樹(shù)法的并行碰撞檢測(cè)方法,其特征在于,包括如下步驟: 步驟(Si):提供兩個(gè)待檢測(cè)是否發(fā)生碰撞的物體; 步驟(S2):建立每個(gè)所述物體整體的包圍盒,所述包圍盒作為所述物體的包圍盒樹(shù)的根節(jié)點(diǎn); 步驟(S3):利用與局部坐標(biāo)軸垂直的平面將所述包圍盒劃分成兩個(gè)子包圍盒,即左包圍盒和右包圍盒,以形成根節(jié)點(diǎn)的兩個(gè)子節(jié)點(diǎn),即左子節(jié)點(diǎn)和右子節(jié)點(diǎn); 步驟(S4):對(duì)上述步驟得到的所述兩個(gè)子節(jié)點(diǎn)分別遞歸地執(zhí)行所述包圍盒的分割過(guò)程,以得到最終的包圍盒樹(shù),并且給定最大樹(shù)深度和葉子節(jié)點(diǎn)所包含的幾何元素的個(gè)數(shù); 步驟(S5):將上述步驟得到的兩個(gè)物體的所述包圍盒樹(shù)的當(dāng)前節(jié)點(diǎn)兩兩之間進(jìn)行檢測(cè),判斷是否發(fā)生碰撞,若發(fā)生碰撞,執(zhí)行步驟(S6),否則執(zhí)行步驟(S7); 步驟(S6):若所述當(dāng)前結(jié)點(diǎn)為葉子結(jié)點(diǎn),記下該結(jié)點(diǎn),返回,并檢測(cè)是否發(fā)生碰撞;若所述當(dāng)前結(jié)點(diǎn)不是葉子結(jié)點(diǎn),則取所述當(dāng)前結(jié)點(diǎn)的所有子結(jié)點(diǎn)作為所述包圍盒樹(shù)的當(dāng)前結(jié)點(diǎn),遞歸執(zhí)行步驟(S5); 步驟(S7):若所述當(dāng)前結(jié)點(diǎn)無(wú)未檢測(cè)的兄弟結(jié)點(diǎn),表明未發(fā)生碰撞,記下所述當(dāng)前結(jié)點(diǎn)后,返回;若仍有未檢測(cè)的兄弟結(jié)點(diǎn),表明發(fā)生碰撞,則依次將下所述兄弟結(jié)點(diǎn)作為所述包圍盒樹(shù)的當(dāng)前結(jié)點(diǎn);遞歸執(zhí)行步驟(S5)。
2.根據(jù)權(quán)利要求1所述的基于包圍盒樹(shù)法的并行碰撞檢測(cè)方法,其特征在于,所述兩個(gè)待測(cè)物體為可以劃分成多個(gè)四面體,所述四面體之間具有相關(guān)性。
3.根據(jù)權(quán)利要求1所述的基于包圍盒樹(shù)法的并行碰撞檢測(cè)方法,其特征在于,所述步驟(S6)中檢測(cè)是否發(fā)生碰撞的檢測(cè)方法為空間分解法。
4.根據(jù)權(quán)利要求2所述的基于包圍盒樹(shù)法的并行碰撞檢測(cè)方法,其特征在于,所述空間分解法為八叉樹(shù)算法或者k_d樹(shù)算法或者BSP樹(shù)算法。
5.根據(jù)權(quán)利要求1所述的基于包圍盒樹(shù)法的并行碰撞檢測(cè)方法,其特征在于,所述包圍盒為AABB包圍盒或者方向包圍盒或者固定方向凸包圍盒或者包圍球。
6.根據(jù)權(quán)利要求1所述的基于包圍盒樹(shù)法的并行碰撞檢測(cè)方法,其特征在于,設(shè)計(jì)所述步驟(S4)的出口為遞歸深度超過(guò)了所述給定的最大樹(shù)深度。
7.根據(jù)權(quán)利要求1所述的基于包圍盒樹(shù)法的并行碰撞檢測(cè)方法,其特征在于,設(shè)計(jì)所述步驟(S4)的出口為所述子節(jié)點(diǎn)所包含的基本幾何元素個(gè)數(shù)少于所述給定的葉子節(jié)點(diǎn)所包含幾何元素個(gè)數(shù)的最小值。
8.根據(jù)權(quán)利要求1所述的基于包圍盒樹(shù)法的并行碰撞檢測(cè)方法,其特征在于,設(shè)計(jì)所述步驟(S4)的出口為所述左、右子節(jié)點(diǎn)至少有一個(gè)包含的幾何元素個(gè)數(shù)與其父節(jié)點(diǎn)所包含幾何元素個(gè)數(shù)相差在10以下。
9.根據(jù)權(quán)利要求1所述的基于包圍盒樹(shù)法的并行碰撞檢測(cè)方法,其特征在于,所述包圍盒樹(shù)的每一個(gè)節(jié)點(diǎn)包含兩個(gè)子對(duì)象,分別為多面體子對(duì)象和包圍盒子對(duì)象。
【專利摘要】本發(fā)明涉及一種基于包圍盒樹(shù)法的并行碰撞檢測(cè)方法,在對(duì)兩個(gè)物體做碰撞檢測(cè)時(shí),先增加包圍盒的方法進(jìn)行碰撞檢測(cè),如不發(fā)生碰撞,就無(wú)需做下一步檢測(cè),如果發(fā)生碰撞,則做兩個(gè)物體精確碰撞檢測(cè)。在對(duì)兩個(gè)物體做精確碰撞檢測(cè)時(shí),引入并行的思想,實(shí)現(xiàn)了并行碰撞檢測(cè)。由此將兩個(gè)物體間的碰撞檢測(cè)轉(zhuǎn)化為系列四面體間的并行碰撞檢測(cè),在保證高精度的前提條件下,有效的滿足了碰撞檢測(cè)的實(shí)時(shí)要求,提高了檢測(cè)效率,同時(shí)也解決了一般碰撞檢測(cè)算法只適用于凸多面體的不足。
【IPC分類】G06T17-00
【公開(kāi)號(hào)】CN104867177
【申請(qǐng)?zhí)枴緾N201410836384
【發(fā)明人】熊玉梅
【申請(qǐng)人】上海電機(jī)學(xué)院
【公開(kāi)日】2015年8月26日
【申請(qǐng)日】2014年12月23日