亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基于四叉包圍盒樹的柔性織物自碰撞檢測方法

文檔序號:6619222閱讀:404來源:國知局
專利名稱:一種基于四叉包圍盒樹的柔性織物自碰撞檢測方法
技術領域
本發(fā)明涉及一種基于四叉包圍盒樹的柔性織物自碰撞檢測方法,屬于柔性織物仿真碰撞 檢測技術領域。
背景技術
碰撞處理包括碰撞檢測和碰撞響應兩部分。碰撞檢測的目標是發(fā)現(xiàn)碰撞并報告;碰撞響 應是在碰撞發(fā)生后,根據(jù)碰撞點及其它參數(shù)使發(fā)生碰撞的對象做出正確的動作,以反應真實 的動態(tài)效果。
現(xiàn)有的基于空間的碰撞檢測算法大致可劃分為兩大類空間分解法(Space Decomposition) 和層次包圍盒法(Hierarchical Bounding Volumes)。這兩類算法的主要思想都是為了減少 被測元素的數(shù)量,以提高算法效率。
空間分解法是將整個虛擬空間劃分成相等體積的小單元格,只對占據(jù)同一單元格或相鄰 單元格的幾何對象進行相交測試。比較典型的方法有八叉樹和BSP樹??臻g分解法對于一般 的環(huán)境很難選擇一個最優(yōu)的空間分解尺寸,若選擇不當則會導致空間耗費大、計算效率低。
層次包圍盒法的核心思想是利用體積略大而幾何特性簡單的包圍盒將復雜幾何對象包裹 起來,在進行碰撞檢測時,首先進行包圍盒之間的相交測試,只有包圍盒相交時,才對其所 包裹的對象做進一步求交計算。在構造碰撞體的包圍盒時,通過引入樹狀層次結(jié)構可快速剔 除不發(fā)生碰撞的元素,減少大量不必要的相交測試,從而提高碰撞檢測效率。比較典型的包 圍盒類型有沿坐標軸的包圍盒AABB(Axis Aligned Bounding Boxes),包圍球(Spheres),方 向包圍盒00BB(Object Oriented Bounding Box)等。
在柔性織物形變動態(tài)模擬中,碰撞可以分成兩類 一類是織物與外界其他物體的碰撞,
如與桌子、地面、人體等的碰撞,稱為他碰撞;另一類是織物自身各部分之間的碰撞,稱為
自碰撞。這兩種碰撞有著不同的檢測和處理方法。本發(fā)明針對自碰撞問題。
織物在運動中,除了與周圍的物體發(fā)生碰撞外,其自身的各個部分也會發(fā)生碰撞(即自 碰撞)。為了保證模擬的真實感,需要及時檢測到這些碰撞并對其進行響應,否則會發(fā)生穿 透現(xiàn)象,破壞模擬的真實感。對織物進行碰撞檢測和響應處理是一項非常復雜而耗時的工作, 而在應用中對其實時性的要求卻很高。因此,如何設計具有真實感和實時性的碰撞檢測和響 應算法成為織物模擬的關鍵。 如圖1所示,碰撞檢測分為初步檢測和精確檢測兩個階段。初步檢測階段采用層次包圍盒技術和空間層次剖分技術來找到可能發(fā)生碰撞的基本幾何元素對(如三角面片對);精 確檢測階段則處理基本幾何元素對之間的精確求交檢測。 傳統(tǒng)碰撞檢測方法主要存在以下一些問題
(1) 采用二叉樹的形式建立層次包圍盒樹,并且葉子結(jié)點只包含一個基元,這種方法雖 容易理解和實現(xiàn),但當葉子結(jié)點數(shù)量龐大時,會導致樹的高度增加很快,這一方面使得內(nèi)存 的占用量很大,另一方面降低了算法的效率。
(2) 傳統(tǒng)的方法在自底向上構建包圍盒樹的過程中未考慮幾何基元的空間位置關系,這 會在一定程度上導致層次包圍盒結(jié)構比較松散,從而影響碰撞檢測的效率。
針對以上問題,本發(fā)明提出了一種基于四叉包圍盒樹的柔性織物自碰撞檢測的方法,其 核心內(nèi)容可以總結(jié)為對織物幾何基元建立四叉包圍盒樹,并采用基于四叉包圍盒樹的法向 量錐法、三角面片重心檢測法和平面同側(cè)過濾法分別在粗略檢測和精確求交階段過濾掉不可 能相交的三角面片,以此大大減少相交測試的計算量。

發(fā)明內(nèi)容
本發(fā)明要解決的技術問題是克服現(xiàn)有技術的不足,提供一個適應柔性織物自碰撞檢測 的方法,減少相交測試的計算量,提高運算效率。
本發(fā)明采用的技術方案對織物幾何基元建立四叉包圍盒樹,基于四叉包圍盒樹,結(jié)合 法向量錐法、三角面片重心檢測法在粗略檢測階段過濾掉不可能相交的三角面片,然后,在 精確求交階段,采用平面同側(cè)過濾法減少精確求交的計算量。該方案實現(xiàn)的步驟,如圖2所 示
(1) 利用織物幾何基元的空間位置關系,構建結(jié)構緊密的四叉包圍盒樹;
(2) 基于四叉包圍盒樹,采用法向量錐法,排除掉不可能相交的三角面片對;
(3) 根據(jù)兩三角面片重心間的距離,過濾掉距離大于給定閾值的三角面片對;
(4) 基本幾何元素間的精確檢測,平面同側(cè)過濾法過濾掉不必要的線段平面求交。 本發(fā)明與現(xiàn)有技術相比的有益效果是-
系統(tǒng)效率得到了明顯提升,保證了仿真的實時性。在質(zhì)點數(shù)量相同的情況下,相比二叉 樹而言,四叉樹的深度較小,因此碰撞檢測執(zhí)行的遞歸次數(shù)也就明顯較少。而后通過三角面 片重心距離法等方法過濾掉更多未發(fā)生碰撞的碰撞對,從而大大減少了精確求交的計算量, 提高了運算效率。


圖1碰撞檢測算法框架圖2基于四叉樹包圍盒的柔性織物自碰撞檢測法步驟示意5—圖3織物四叉樹劃分示意圖4兩個子結(jié)點錐頂角合并示意圖; 圖5重心距離示意圖; 圖6平均幀率對比圖; 圖7重心距離參數(shù)作用效果圖。
具體實施例方式
下面結(jié)合附圖及具體實施方式
對本發(fā)明進一步詳細說明。
(1) 利用織物幾何基元的空間位置關系,構建結(jié)構緊密的四叉包圍盒樹;
第一步采用自上而下的方法遞歸建立四叉樹。用四叉樹描述層次包圍體結(jié)構,將織物 按照4x4分割, 一直分割到三角面片為止,即葉子結(jié)點為三角面片??椢飫澐秩鐖D3所示。 樹的根結(jié)點是包圍整個織物的包圍盒,葉結(jié)點是包圍織物的基本幾何元素(三角面片)的包圍 盒,中間結(jié)點則對應于各級子部分的包圍盒。
第二步在每一個時間步長內(nèi),需要更新四叉包圍盒樹每個結(jié)點的錐頂角和包圍盒信息, 采用后序遍歷四叉樹的方法進行更新。
(2) 基于四叉包圍盒樹,采用法向量錐法,排除掉不可能相交的三角面片對; 第一步遞歸計算四叉包圍盒樹各結(jié)點的圓錐的頂角a值。在遍歷求解過程中,將四個
孩子結(jié)點分為兩組,先分別求出各組中兩個子結(jié)點合并的《值,記為a,、 a2,再將a,、 a2 合并,從而得到四個孩子結(jié)點的父結(jié)點的cr值。
假設兩個子結(jié)點對應錐體軸線的夾角為/ 。則這兩個子結(jié)點合并的"值可由兩個子結(jié)點 的A、 "2以及/ 來確定(如圖4所示錯誤!未找到引用源。),公式為cr-》/2 + max(c^,a2)。
若某結(jié)點僅有一個子結(jié)點,則其a屬性等于其子結(jié)點的a值。二叉樹的每個葉結(jié)點僅包 含一個三角形元素,其"=0。
第二步檢測層次包圍盒四叉樹的某一結(jié)點,若此結(jié)點對應區(qū)域的圓錐頂角"<^/2,可
以斷定這塊區(qū)域沒有發(fā)生自碰撞,停止進一步檢測;但若"2;r/2,則這塊區(qū)域可能發(fā)生了 自碰撞。
(3) 根據(jù)兩三角面片重心間的距離,過濾掉距離大于給定閾值的三角面片對; 用兩個三角面片重心間的距離來標識兩個三角面片的距離,當該距離大于某閾值時,這
兩個三角面片不相交,否則才有可能相交。設兩個三角面片M^,C,、 A^i^C2為大小相等 的等腰直角三角形,直角邊長為L,重心間的距離為D。則當兩個三角面片發(fā)生碰撞時,其 重心的距離滿足式Ds主ViF。當D取1V F時(如圖5錯誤!未找到引用源。所示),兩個三角形共面,且兩個三角形的重心與相交的斜邊頂點位于同一直線上,此時是兩個三角形 相交且重心距離最遠的情況。
重心距離檢測法設定一個重心距離閾值,當兩三角面片的重心距離大于該閾值時,則 認為這兩個三角面片不相交,過濾掉該三角面片對,不對它們進行進一步的精確求交檢測。
在應用過程中,可根據(jù)系統(tǒng)的實時性需求調(diào)整重心距離閾值,以可接受的碰撞對遺漏率 換取期望的實時性。
(4)基本幾何元素間的精確檢測,平面同側(cè)過濾法過濾掉不必要的線段平面求交; 判斷質(zhì)點在兩個時刻的位置是否位于三角面片的同側(cè),如在同側(cè)則表明質(zhì)點并未穿透面
片,因而不需要進行點面求交計算,從而達到優(yōu)化目的。
判斷質(zhì)點當前時刻與下一時刻位置是否位于三角面片同一側(cè)的方法如下
第一步由三角面片的法向(法向已知)及三角面片的一個頂點得到三角面片所在平面
的方程;
第二步將當前時刻與下一時刻的質(zhì)點位置分別帶入方程的表達式得出值X; X=0,表示 點在平面上;X〉0表示點位于平面正側(cè);X 〈O表示點位于平面負側(cè)。
由于平面方程ax+by+cz+d=0的表達式ax+by+cz+d為一次運算,計算復雜度低,故該方 法耗時較少。
四叉包圍盒樹法實驗本實驗將基于四叉包圍盒樹的碰撞檢測方法與傳統(tǒng)的基于二叉包 圍盒樹的方法進行對比。首先對兩種包圍盒樹中的包圍盒個數(shù)進行對比,數(shù)據(jù)如表l所示-表l包圍盒數(shù)量(個)
7i 17X17 255 1023 213853 —
由表1可看出,與二叉包圍盒樹相比,采用四叉包圍盒樹對織物進行劃分減少了包圍盒 的總個數(shù),從而可減少系統(tǒng)的計算開銷。
下面對以上兩種方法的檢測效率進行實驗對比。創(chuàng)建一塊初始方向為水平的織物,固定 織物的中心質(zhì)點,然后運行系統(tǒng)讓織物自然垂下。分別采集兩種方法在IO秒內(nèi)檢測到的碰 撞對個數(shù)(見表2)和10秒內(nèi)的平均幀率(見表3)。 表2檢測到的碰撞對個數(shù)(個)
質(zhì),、數(shù)目"~~i"^"i i7xi7
一二叉玩 3—048—8— — —504—1—54—' —895692— 四叉樹 21960 186565 352657
質(zhì)n r四表3包圍盒樹法平均幀率5^比(FPS)
質(zhì)點數(shù)目i5X5 "~~: 17X17
二叉樹 :65.09 56.82 16.65
四叉樹 i 68. 58 62. 20. 37. 64
由表2、表3可知,四叉包圍盒樹法比二叉包圍盒樹法獲得的需要精確求交的碰撞對數(shù)量 明顯減少,即四叉包圍盒樹法可過濾掉更多未發(fā)生碰撞的碰撞對,從而減少后面點面和邊邊 精確求交的次數(shù)。
從圖6可看出,質(zhì)點數(shù)量越多,采用本發(fā)明方法對系統(tǒng)效率的提高就明顯。 三角面片重心距離檢測法實驗本實驗用以驗證三角面片重心距離檢測法的有效性。重
心距離參數(shù)取為最大邊長的1.1倍。創(chuàng)建一塊初始方向為水平的織物,固定織物的中心質(zhì)點,
然后運行系統(tǒng)讓織物自然垂下。分別統(tǒng)計采用該方法前后檢測到10萬個碰撞對時系統(tǒng)運行 的平均幀率,見表41表4、表5。 表41檢測到的碰撞對(個)
,點數(shù), ~~" 9X9 17X1
呆使用i心運禽檢須0, Tooooo 「To00—。 " iooocr
jflS—運—「83193 — —76025— "63606 —
表5平均幀率對比(FPS)
質(zhì)點數(shù)目 5X5 ^
—未使用i—心距M檢測73. 46 71. —量:lS國運禽齒ii法— 一 —國一74:一90 一一 — 74: 36 : 56. 75
由表4、表5可知,采用重心距離檢測法后,當質(zhì)點數(shù)越多時,過濾掉的碰撞對數(shù)也越多, 系統(tǒng)運行幀率得到較明顯的提升。
重心距離參數(shù)實驗驗證重心距離參數(shù)對三角面片重心距離檢測法效率的影響。
記三角面片最長邊邊長為L,分別取重心距離參數(shù)值為1.5L, 1.4L, 1.3L, 1. 2L, 1. 1L, L, 0.9L, 0. 8L, 0. 7L, 0. 6L, 0. 5L。
創(chuàng)建一塊質(zhì)點數(shù)為17x17個、初始方向為水平的織物,固定織物的中心質(zhì)點,然后運行 系統(tǒng)讓織物自然垂下。
統(tǒng)計不同重心距離參數(shù)值下,總碰撞對數(shù)達到IO萬個時系統(tǒng)的碰撞對過濾率和碰撞對遺 漏率(見表6)。
表6 碰撞對過濾率和碰撞對遺漏率
X j
7 i 9
1 ! 4
8碰撞對過濾率碰撞對遺漏率
19.92%3. 10%
21.10%3. 93%
22.79%5. 25%
25.93%7. 42%
29.59%9. 89%
36.39%12. 91%
—48.02%18.76%
55.97%25. 72%
64.02%32. 23%
70.38%39. 96%
81.10%49.21%
由表6和圖7可看出重心距離檢測的方法,可以在損失少量有效碰撞對的前提下,提高
系統(tǒng)運行效率;距離值參數(shù)與有效碰撞檢測丟失率的關系為距離值參數(shù)設置的越大,碰撞 對遺漏率就越大。我們可以根據(jù)系統(tǒng)的運行需求,靈活的調(diào)節(jié)距離參數(shù),以達到在可接受的 碰撞對遺漏率的前提下提升系統(tǒng)運行幀率的目的。

5:4 CO 2 一
L L 一 L
1 o : 9 I
L L TIP L
8 ; 7 6 , 5
o: o: o o : o
權利要求
1、一種基于四叉包圍盒樹的柔性織物自碰撞檢測方法,其特征在于通過以下步驟實現(xiàn)(1)利用織物幾何基元的空間位置關系,構建結(jié)構緊密的四叉包圍盒樹;(2)基于四叉包圍盒樹,采用法向量錐法,排除掉不可能相交的三角面片對;(3)根據(jù)兩三角面片重心間的距離,過濾掉距離大于給定閾值的三角面片對;(4)基本幾何元素間的精確檢測,平面同側(cè)過濾法過濾掉不必要的線段平面求交。
2、 根據(jù)權利要求l所述的基于四叉包圍盒樹的柔性織物自碰撞檢測方法,其特征在于: 所述步驟(1)中的利用織物幾何基元的空間位置關系,構建結(jié)構緊密的四叉包圍盒樹方法 如下(1.1) 采用自上而下的方法遞歸建立四叉樹;將織物按照4x4分割, 一直分割到三角 面片為止,即葉子結(jié)點為三角面片;樹的根結(jié)點是包圍整個織物的包圍盒,葉結(jié)點是包圍織 物的基本幾何元素三角面片的包圍盒,中間結(jié)點則對應于各級子部分的包圍盒;(1.2) 每一個時間步長內(nèi),采用后序遍歷四叉樹的方法更新四叉包圍盒樹每個結(jié)點的 錐頂角和包圍盒信息。
3、 根據(jù)權利要求l所述的基于四叉包圍盒樹的柔性織物自碰撞檢測方法,其特征在于 所述步驟(2)中的基于四叉包圍盒樹,采用法向量錐法,排除掉不可能相交的三角面片對, 方法如下(2.1) 遞歸計算四叉包圍盒樹各結(jié)點的圓錐的頂角"值;(2.2) 檢測四叉包圍盒樹各結(jié)點,若結(jié)點對應區(qū)域的圓錐頂角《<"/2,判斷這塊區(qū)域 沒有發(fā)生自碰撞,停止進一步檢測;若"2;r/2,判斷這塊區(qū)域有可能發(fā)生了自碰撞,需要 進一步檢測。
4、 根據(jù)權利要求l所述的基于四叉包圍盒樹的柔性織物自碰撞檢測方法,其特征在于 所述步驟(3)中的根據(jù)兩三角面片重心間的距離,過濾掉距離大于給定閾值的三角面片對 方法如下(3.1) 計算三角面片的重心位置;(3.2) 計算兩三角面片的重心距離;(3.3) 當兩三角面片的重心距離大于設定的重心距離閾值時,則認為這兩個三角面片 不相交,過濾掉該三角面片對,不對它們進行進一步的精確求交檢測。
5、 根據(jù)權利要求l所述的基于四叉包圍盒樹的柔性織物自碰撞檢測方法,其特征在于 所述步驟(4)中的基本幾何元素間的精確檢測,平面同側(cè)過濾法過濾掉不必要的線段平面求交,方法如下(4.1) 計算質(zhì)點在前后兩個時刻的位置;(4.2) 判斷質(zhì)點前后兩個時刻位置是否位于三角面片的同側(cè),如在同側(cè)則表明質(zhì)點并 未穿透面片,不需要進行點面求交計算。
全文摘要
一種基于四叉包圍盒樹的柔性織物自碰撞檢測方法,其特點在于對織物幾何基元建立四叉包圍盒樹,并采用基于四叉包圍盒樹的法向量錐法、三角面片重心檢測法和平面同側(cè)過濾法分別在粗略檢測和精確求交階段過濾掉不可能相交的三角面片,從而大大減少了相交測試的計算量。其步驟是(1)利用織物幾何基元的空間位置關系,構建結(jié)構緊密的四叉包圍盒樹;(2)基于四叉包圍盒樹,采用法向量錐法,排除掉不可能相交的三角面片對;(3)根據(jù)兩三角面片重心間的距離,過濾掉距離大于給定閾值的三角面片對;(4)基本幾何元素間的精確檢測,平面同側(cè)過濾法過濾掉不必要的線段平面求交。
文檔編號G06T17/00GK101593367SQ20091008790
公開日2009年12月2日 申請日期2009年6月25日 優(yōu)先權日2009年6月25日
發(fā)明者兵 何, 柳 成, 王莉莉, 趙沁平, 郝愛民 申請人:北京航空航天大學
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1