999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于混合層次包圍盒的快速碰撞檢測算法

2023-10-29 01:50:16菲,鄒玲,張
計算機仿真 2023年9期
關鍵詞:方向檢測

林 菲,鄒 玲,張 聰

(杭州電子科技大學計算機學院,浙江 杭州 310000)

1 引言

在虛擬現實環境中,碰撞檢測用來確定虛擬場景中的物體間是否發生接觸或穿透,增強人與虛擬環境之間的視覺與力覺交互體驗,從而提高虛擬環境的真實感和沉浸感[1]。因此,碰撞檢測是直接影響用戶體驗的關鍵指標,也是虛擬現實領域研究的關鍵問題之一。隨著虛擬環境中模型規模和復雜度的升高,對碰撞檢測算法提出了更高的要求[2,3]。當前針對碰撞檢測的國內外研究主要包括基于圖像的碰撞檢測算法和基于圖形的碰撞檢測算法,前者需要借助圖形硬件設備,后者從策略角度和算法角度提高碰撞檢測適應性。在基于圖形的碰撞檢測算法中,層次包圍盒算法具有存儲量小、靈活性高的優點,從而被廣泛應用[4]。

本文主要研究基于層次包圍盒的碰撞檢測算法。該類算法的主要思想是通過體積稍大且特性簡單的幾何體(稱為包圍盒)來近似地代替復雜的幾何物體,進而構造層次包圍盒樹來提升碰撞檢測算法的速度。常見的包圍盒類型有軸對齊包圍盒(Axis-aligned Bounding Box)[5]、包圍球(Sphere)[6]、方向包圍盒(Orient Bounding Box)[7]以及離散方向多面體(K-Dop)[8]等。表1為這四種常見包圍盒的性能比較,從中可以看出,緊密程度和相交測試難度作為包圍盒技術兩個重要指標,二者始終相互制約。為了提高包圍盒緊密性,研究者們提出使用三角面片面積加權的方法提高OBB包圍盒緊密性[9],但其在一定程度上延長了包圍盒構造時間。另一方面,為了減少相交檢測難度和次數,研究者們提出了各種基于混合層次包圍盒的碰撞檢測算法來提升碰撞檢測的效率,如OBB-Sphere[10]以及AABB-OBB[11]。盡管這些算法都進行了一定程度上的改進和提高,但是以犧牲其它方面的性能為代價,缺乏對碰撞檢測整體性能的均衡考量。

表1 常見四種包圍盒的性能比較

為了進一步提高碰撞檢測算法整體效率,本文提出了一種基于Sphere-AABB-OBB混合層次包圍盒的快速碰撞檢測算法。該算法在構造OBB包圍盒時,首先通過預處理頂點提取凸體后,再利用基于三角面積加權的方法計算OBB包圍盒,來解決包圍盒方向傾斜問題,從而提高包圍盒緊密性并減少包圍盒構造時間;同時,本文綜合考慮了Shpere、AABB包圍盒相交檢測的簡單性和OBB包圍盒緊密性的特點,建立了一種新的混合層次包圍盒結構——Sphere-AABB-OBB混合包圍盒層次樹,以減少相交檢測的次數和時間。

2 混合包圍盒構造方法

混合包圍盒算法通常是在外層使用構造簡單的包圍盒,而在內層使用緊密性良好的包圍盒,以加速排除不相交的物體。本文提出了一種新的Sphere-AABB-OBB混合層次包圍盒結構,自頂向下構建層次樹,樹的每個節點均包含3種包圍盒,從內到外依次構造OBB包圍盒、AABB包圍盒以及Sphere包圍盒。

2.1 OBB包圍盒優化

OBB包圍盒是指在坐標軸的任意方向上包圍物體模型的最小長方體,其結構緊湊、檢測精度高于Sphere和AABB包圍盒。OBB包圍盒一般用一個中心點、一個旋轉矩陣以及 3 個方向上的半徑來表示,其常用的計算方法是一種基于主成分分析法(PCA)計算最小 OBB 的方法,這種方法主要通過計算模型所有三角形頂點的均值和協方差矩陣 C 來確定OBB 的中心點和方向,然后根據模型中所有三角形頂點在 3 條軸上的極值即可得到 OBB 的 3 條半徑。

本文考慮到只有物體模型凸包上的頂點才會影響其OBB包圍盒,可以忽略冗余頂點,因此提出使用Quickhull算法[12]提取物體凸包來近似代替物體模型,以減少參與OBB包圍盒構造的頂點數量,從而降低OBB包圍盒構造的時間。為了避免OBB包圍盒向頂點密集方向傾斜,本文采用了一種基于三角面積加權的OBB包圍盒中心點計算方法,將凸體的質心作為OBB包圍盒中心點。

假設物體模型為S,物體模型的凸體,模型凸體中有n個三角形(qk,pk,rk),其中1≤k≤n,則協方差矩陣為

-mH,imH,j

(1)

(2)

(3)

2.2 AABB包圍盒計算

AABB包圍盒存在多種常見數據結構,其中中心點-邊長這種數據結構更節省存儲空間。在本文算法中,OBB包圍盒和AABB包圍盒的中心點是重合的,采用這種結構類型,只需根據已求出的OBB包圍盒計算外層AABB包圍盒在x、y、z軸上的邊長。

假設OBB包圍盒的中心點為mH,其三個基準方向分別為d1、d2、d3,其基準方向的半徑分別為r1、r2、r3,可得OBB包圍盒的定義區域:

R={mH+ad1r1+bd2r2+ad3r3|a,b,c∈(-1,1)}

(4)

之后,分別計算R中在x、y、z軸上的最大最小值,將最大最小值相減即可得到AABB包圍盒在x、y、z軸上的邊長。

2.3 Sphere包圍盒計算

由于OBB是采用中心點-邊長的數據結構,因此要計算它們外層的Sphere包圍盒,以OBB包圍盒中心作為球心,以OBB包圍盒頂點中最遠頂點與球心的距離為Sphere包圍盒的半徑。

3 混合包圍盒相交檢測方法

OBB包圍盒之間的相交檢測較為復雜,而Sphere包圍盒和AABB包圍盒的相交檢測更為簡單。在本文算法中,首先對物體混合包圍盒外層的Sphere包圍盒進行相交檢測,若Sphere包圍盒之間相交,則繼續對AABB包圍盒之間進行相交檢測,若AABB包圍盒相交,則繼續對OBB包圍盒之間進行相交檢測。

3.1 Sphere包圍盒相交檢測

假設兩個Sphere包圍盒的球心和半徑分別為:So、R1和:To、R2,如果圓心距的長度大于兩個Sphere包圍盒半徑的之和,則表示兩個Sphere包圍盒不相交,否則兩個Sphere包圍盒相交,如圖1所示,不等式如下:

圖1 Sphere-Sphere相交檢測

|SoTo|>R1+R2

(5)

3.2 AABB包圍盒相交檢測

AABB包圍盒之間的相交檢測,可通過將兩個包圍盒中心距離在方向軸上的投影分別與兩個包圍盒在該方向上的半徑之和進行比較,如圖2所示。

圖2 AABB-AABB相交檢測

其中,Uo和Vo是AABB包圍盒U和AABB包圍盒V的中心點,α是兩個包圍盒中心點與垂直方向之間的夾角,lu和lv分別為包圍盒U和V水平方向上的半徑,wu和wv分別為包圍盒U和V垂直方向上的半徑。當同時滿足不等式(6)和不等式(7)時,可以確定兩個AABB包圍盒不相交,否則相交,如下所示

|UoVo|sinα≥(lu+lv)

(6)

|UoVo|cosα≥(wu+wv)

(7)

3.3 OBB包圍盒相交檢測

OBB相交檢測方法一般基于分離軸定理(Separating Axis Theorem)。OBB包圍盒之間的相交檢測需要測試最多15個分離軸才能確定OBB的相交狀態。這15個分離軸包括分別對應兩個物體的3個坐標軸以及垂直于每一軸的9個軸。如果包圍盒之間在這15個分離軸上都不相交,則這兩個OBB包圍盒不相交;否則,只要其中任意一個分離軸產生相交,即可判斷包圍盒相交。

在利用分離軸檢測OBB包圍盒之間的是否相交之前,可先通過簡單計算來排除不相交情況,OBB包圍盒S和OBB包圍盒T及其外層Sphere包圍盒之間的位置關系如圖3所示。

圖3 OBB-OBB相交檢測

其中ls和ws是包圍盒S的方向上的半徑,lt和wt是包圍盒T的方向上的半徑。如果圓心距的長度大于兩個OBB包圍盒半對角線之和,則兩個包圍盒不相交,可用以下不等式來判斷

(8)

假設物體1的混合包圍盒為Sphere1、AABB1、OBB1,物體2的混合包圍盒為Sphere2、AABB2、OBB2,其相交檢測算法如下

算法1:混合包圍盒相交檢測方法

Input:物體1、物體2的混合包圍盒

1) If(Sphere1和Sphere2不等式5)thenreport物體1、物體2無相交

2) else

3) If(AABB1和AABB2滿足不等式(6)、不等式(7)thenreport物體1、物體2無相交

4) else

5) If(!AABB1.intersect(AABB2))thenreport物體1、物體2無相交

6) else

7) If(OBB1和OBB2滿足不等式8)thenreport物體1、物體2無相交

8) else

9) If(!OBB1.intersect(OBB2))thenreport物體1、物體2無相交

10) else report 物體1、物體2OBB包圍盒相交

4 實驗結果及分析

為了驗證本文算法的有效性,實驗平臺系統采用 Windows10,內存 16GB,CPU 為 Intel(R) Xeon(R) W-2133 3.6GHz,實驗環境基于WebGL和 Microsoft Visual Studio Code。

為了驗證OBB包圍盒優化效果,本文選擇了基于主成分分析的傳統OBB包圍盒構造算法作為基準算法,在不同物體模型上進行了包圍盒構造的對照實驗,結果見表2。從表中可以看出,本文提出的OBB包圍盒優化算法在保持包圍盒緊密性的同時(包圍盒體積增長率少于6%),大幅度減少了OBB包圍盒構造時間,尤其是在模型面片數量多的情況下。這是因為該優化算法只提取物體凸體頂點集來參與OBB包圍盒構造的計算,頂點數量的減少使得構造時間顯著縮短。

表2 包圍盒構造時間和體積對比

為了更好地體現本文提出的混合包圍盒結構在相交檢測上的改進效果,在固定虛擬場景空間大小的情況下,將提出的Sphere-AABB-OBB(SAO)與OBB-Sphere算法(OS)、AABB-OBB算法(AO)在不同物體數量的虛擬場景中進行相交檢測實驗。實驗結果如表3所示。由實驗結果可知,在平均相交檢測時間上,本文算法始終優于其它兩個對比算法。其關鍵在于,本文算法利用外層Sphere、AABB包圍盒排除一定不相交的包圍盒,從而能顯著減少物體相交檢測時間。

表3 相交檢測時間對比

5 結論

為了提高虛擬場景中碰撞檢測的效率,本文提出了一種基于混合包圍盒的快速碰撞檢測算法。本文算法對OBB包圍盒構造進行優化處理,同時在OBB包圍盒外層構造Sphere包圍盒以及AABB包圍盒,以更快地排除不相交物體,并對OBB包圍盒相交檢測進行改善,這使得相交檢測過程得到了進一步優化。最后,通過對比實驗,證明了相對于其它基準混合包圍盒的碰撞檢測算法,本文算法在包圍盒構造方面和包圍盒相交檢測方面都進行了有效優化,碰撞檢測的效率得到了顯著提高。

猜你喜歡
方向檢測
2022年組稿方向
計算機應用(2022年2期)2022-03-01 12:33:42
2022年組稿方向
計算機應用(2022年1期)2022-02-26 06:57:42
“不等式”檢測題
“一元一次不等式”檢測題
“一元一次不等式組”檢測題
2021年組稿方向
計算機應用(2021年4期)2021-04-20 14:06:36
2021年組稿方向
計算機應用(2021年3期)2021-03-18 13:44:48
2021年組稿方向
計算機應用(2021年1期)2021-01-21 03:22:38
“幾何圖形”檢測題
“角”檢測題
主站蜘蛛池模板: 亚洲第一黄色网址| 免费又黄又爽又猛大片午夜| www.日韩三级| 亚洲日韩精品无码专区| 伊人久久综在合线亚洲91| 亚洲综合中文字幕国产精品欧美| 狠狠干综合| 久久大香伊蕉在人线观看热2| 欧洲亚洲欧美国产日本高清| 国产无码网站在线观看| 亚洲国产日韩在线成人蜜芽| 国产H片无码不卡在线视频| 国产高清毛片| 国产精品开放后亚洲| 一级高清毛片免费a级高清毛片| 成人午夜天| av天堂最新版在线| 亚洲天堂日韩av电影| 91精品国产情侣高潮露脸| 日a本亚洲中文在线观看| 无码国产伊人| 亚洲午夜天堂| 免费高清a毛片| 日本色综合网| 亚洲aaa视频| 一级毛片不卡片免费观看| 久久精品中文字幕少妇| 国产黄色片在线看| 97影院午夜在线观看视频| 亚洲一区国色天香| 亚洲成人在线网| 久久狠狠色噜噜狠狠狠狠97视色| 毛片网站观看| 久久99精品国产麻豆宅宅| 亚洲免费黄色网| 人人91人人澡人人妻人人爽| 1769国产精品视频免费观看| 色欲综合久久中文字幕网| 免费看a毛片| 国内精自视频品线一二区| аⅴ资源中文在线天堂| 成人av专区精品无码国产 | 无码内射在线| 国产亚洲精品资源在线26u| 国内精品自在自线视频香蕉| 国产精品综合色区在线观看| 久久久久中文字幕精品视频| 中国一级特黄大片在线观看| 国产99精品久久| 国产成人精品一区二区三在线观看| 中文字幕有乳无码| 狠狠做深爱婷婷久久一区| 精品亚洲欧美中文字幕在线看| 国产精品无码作爱| h视频在线播放| 国产欧美日韩免费| 婷婷五月在线| 在线观看免费AV网| 国产自在线播放| 99热国产在线精品99| 欧美日韩理论| 91免费观看视频| 看你懂的巨臀中文字幕一区二区| 亚洲精品久综合蜜| 国产色网站| 五月丁香伊人啪啪手机免费观看| 免费jjzz在在线播放国产| 亚洲Aⅴ无码专区在线观看q| 97精品国产高清久久久久蜜芽| 国产亚洲欧美另类一区二区| 成人综合久久综合| 国产va在线观看免费| 国产91在线免费视频| 久久综合成人| 无码精品福利一区二区三区| 国产国产人成免费视频77777| 久久无码av三级| 国产成人精品男人的天堂下载| 丰满人妻被猛烈进入无码| 久久精品最新免费国产成人| 中文字幕资源站| 欧美一级高清片久久99|