• 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    一種面向GPU包圍盒碰撞檢測方法技術

    技術編號:15692085 閱讀:100 留言:0更新日期:2017-06-24 05:49
    本發明專利技術公開了一種面向GPU包圍盒碰撞檢測方法,包括以下三個階段:階段1、包圍盒層次結構構造階段;階段2、軸對齊包圍盒(AABB)碰撞檢測階段;階段3、包圍盒層次結構更新階段;其中,階段2具體包括步驟21、在GPU上進行AABB重疊測試;步驟22、在GPU上進行基元三角形相交測試;本發明專利技術的一種面向GPU包圍盒碰撞檢測方法在保證高度交互式更新率的前提下,快速準確地檢測兩個嚴重變形模型的所有基元對之間的相交。

    A collision detection method for GPU bounding box

    The invention discloses a GPU oriented bounding box collision detection method, including the following three stages: Stage 1, bounding box hierarchy construction stage; stage 2, axis aligned bounding box (AABB) collision detection stage; 3 stage, bounding box hierarchy updates the stage; stage 2 includes 21 steps the AABB overlap in the GPU test; step 22, the GPU on the basis of the invention of the triangle intersection test; a GPU oriented bounding box collision detection method in the premise of ensuring the highly interactive update rate, detection of two serious deformation model based on the intersection between all elements quickly and accurately.

    【技術實現步驟摘要】
    一種面向GPU包圍盒碰撞檢測方法
    本專利技術涉及計算機圖形學領域,尤其涉及一種面向GPU包圍盒碰撞檢測方法。
    技術介紹
    碰撞檢測是計算機圖像、虛擬現實、計算機游戲、動畫、計算機輔助設計、機器人及虛擬制造等領域中的一個重要研究課題。碰撞檢測技術是檢測物體之間是否發生接觸或穿透,如果發生了這種情況就要采取相應的相應措施,而自碰撞檢測是可變形體模擬過程中最耗時的環節。而,現有算法大多是為單核CPU設計的,無法有效擴展到大規模并行處理器上。隨著多核圖形處理器(GraphicsProcessingUnit,簡稱GPU)的快速發展,基本上所有的計算機上都配置有GPU,設計新的并行算法有望利用GPU的計算資源提高碰撞檢測算法的效率。因此,本領域的技術人員致力于開發一種面向GPU包圍盒碰撞檢測方法,在保證高度交互式更新率的前提下,快速準確地檢測兩個嚴重變形模型的所有基元對之間的相交。
    技術實現思路
    有鑒于現有技術的上述缺陷,本專利技術所要解決的技術問題是開發一種面向GPU包圍盒碰撞檢測方法,在保證高度交互式更新率的前提下,快速準確地檢測兩個嚴重變形模型的所有基元對之間的相交。為了獲得GPU的最大計算性能,需要考慮兩個問題:1、每個線程應使用盡量少的硬件寄存器和存儲資源,以保證GPU內部同一時刻可以運行更多的活動線程;2、線程的單指令多數據操作對程序的分支執行非常敏感,統一線程組內的線程只有執行程序的同一分支才能獲得最大性能。為實現上述目的,本專利技術提供了一種面向GPU包圍盒碰撞檢測方法,包括以下三個階段:階段1、包圍盒層次結構構造階段;階段2、軸對齊包圍盒(AABB)碰撞檢測階段;階段3、包圍盒層次結構更新階段;其中,階段1具體為包括步驟11、在GPU上分階段構造BVH樹;階段2具體為包括步驟21、在GPU上進行AABB重疊測試;步驟22、在GPU上進行基元三角形相交測試;階段3具體為包括步驟31、使用包圍盒修整的方式更新BVH樹結構。進一步地,步驟11具體為:采用表面積啟發式算法策略來確定最優的分割點,進而形成包圍盒的節點。進一步地,計算每個潛在的分割點,然后采用寬度優先的方式計算各個采樣分割點的表面積啟發式算法花費,以確定加速結構中一個節點包圍盒的最優分割點位置。進一步地,計算每個潛在分割點的具體步驟為:Cp被設置為選取當前采樣點后進行遍歷和相交操作所可能產生的花費;nl和nr分別被設置為相應左子節點、右子節點所含的面片數量;S(Nl)、S(Nr)分別被設置為與當前采樣分割點相鄰的左子節點、右子節點的表面積,S(N)被設置為當前采樣分割點的父節點的表面積,KT被設置為對當前采樣分割點的父節點進行遍歷所產生的花費,KI被設置為對當前采樣分割點進行相交操作所產生的花費,利用公式Cp=KT+Kl[nlS(Nl)+nrS(Nr)]/S(N)得到的最小的Cp所對應的點即為最優分割點。進一步地,在包圍盒碰撞檢測階段,首先在GPU上進行全局的AABB重疊測試,接著在GPU上進行大規模并行重疊測試,在模型的全局AABB對之間檢測相交,找出存在相交的模型對。進一步地,步驟31具體為,首先更新葉子節點,再更新兩個孩子節點,最后更新中間節點。進一步地,步驟1還包括減少GPU計算資源浪費的步驟,具體為:步驟12、在全局存儲區域中建立2個隊列,第1隊列和第2隊列分別用來存放等待進行劃分的包圍盒;步驟13、當GPU存在空閑線程塊時,依次從第1隊列中取等待進行劃分的包圍盒節點進行劃分,并將產生的新的包圍盒節點放入第2隊列;步驟14、當第1隊列中所有等待進行劃分的包圍盒節點處理完畢后,清空第1隊列中的所有節點數據;當GPU存在空閑線程塊時,依次從第2隊列中取等待進行劃分的包圍盒節點進行劃分,并將產生的新的包圍盒節點放入第1隊列,直至第2隊列中等待進行劃分的包圍盒節點都處理完畢;步驟15、循環執行步驟14和步驟15,直至完成相應的包圍盒節點的劃分。進一步地,構造BVH樹的中期,使用一個block處理一個BVH節點。進一步地,步驟1分別對模型X和模型Y構造BVH樹。技術效果本專利技術的一種面向GPU包圍盒碰撞檢測方法能夠有效地利用GPU可多線程并行的特點,在GPU上構建BVH樹結構,在GPU上執行大規模并行AABB包圍盒重疊測試,在GPU上進行造包圍盒層次結構的更新,有效地將復雜的變形體碰撞檢測在GPU下進行大規模并行流計算的方式實現,在保證高度交互率的前提下,快速準確檢測兩個嚴重變形模型的所有基元對之間的相交。以下將結合附圖對本專利技術的構思、具體結構及產生的技術效果作進一步說明,以充分地了解本專利技術的目的、特征和效果。附圖說明圖1是本專利技術的一個較佳實施例的一種面向GPU包圍盒碰撞檢測方法的流程示意圖。圖2是本專利技術的一個較佳實施例的一種面向GPU包圍盒碰撞檢測方法的BVH樹構造過程示意圖。具體實施方式如圖1所示,本專利技術的一較佳實施例提供了一種面向GPU包圍盒碰撞檢測方法,以檢測模型X、模型Y之間發生碰撞的三角形基元對為例,對專利技術的一種面向GPU包圍盒碰撞檢測方法進行詳細說明,在本專利技術的較佳實施例中,輸入流為根據模型X和Y構造的BVH樹結構構成的兩個軸對齊包圍盒(AxisAlignedBoundingBox,簡稱AABB),面向GPU包圍盒碰撞檢測方法的步驟主要是:階段1、包圍盒層次結構構造階段;階段2、軸對齊包圍盒碰撞檢測階段;階段3、包圍盒層次結構更新階段;具體地,步驟如下:階段1具體為包括步驟11、在GPU上分階段構造BVH樹;步驟11、在GPU上分階段構造BVH樹的具體步驟是,分別對模型X、Y創建初始的BVH樹。采用表面積啟發式算法(SAH)策略來確定最優的分割點,進而形成包圍盒節點。GPU線程計算單元都用以計算各個采樣分割點的SAH花費進而快速確定加速結構中一個節點包圍盒的最優分割點位置。采用寬度優先的方式,在3個坐標軸上分別計算采樣分割點的SAH花費,然后選取每個坐標軸上花費最小的分割點。計算每個潛在分割點的具體步驟為:Cp被設置為選取當前采樣點后進行遍歷和相交操作所可能產生的花費;nl和nr分別被設置為相應左子節點、右子節點所含的面片數量;S(Nl)、S(Nr)分別被設置為與當前采樣分割點相鄰的左子節點、右子節點的表面積,S(N)被設置為當前采樣分割點的父節點的表面積,KT被設置為對當前采樣分割點的父節點進行遍歷所產生的花費,KI被設置為對當前采樣分割點進行相交操作所產生的花費,利用公式Cp=KT+KI[nlS(Nl)+nrS(Nr)]/S(N)得到的最小的Cp所對應的點即為最優分割點。根據BVH樹在不同構造階段的特點采用不同的構造策略,解決在構造初期線程塊間因任務不均而使空閑線程塊出現等待狀況的問題。在加速構造初期,可以將GPU中全部線程計算單元都用以計算各個采樣分割點的SAH花費,進而快速確定加速結構中一個結點包圍盒的最優分割點位置。因此,步驟1還包括減少GPU計算資源浪費的步驟,具體為:步驟12、在全局存儲區域中建立2個隊列,第1隊列和第2隊列分別用來存放等待進行劃分的包圍盒;步驟13、當GPU存在空閑線程塊時,依次從第1隊列中取等待進行劃分的包圍盒節點進行劃分,并將產生的新的包圍盒節點放入第2隊列;對于第1隊列中編號為k的包圍盒節點進行本文檔來自技高網...
    一種面向GPU包圍盒碰撞檢測方法

    【技術保護點】
    一種面向GPU包圍盒碰撞檢測方法,其特征在于,包括以下三個階段:階段1、包圍盒層次結構構造階段;階段2、軸對齊包圍盒(AABB)碰撞檢測階段;階段3、包圍盒層次結構更新階段;其中,所述階段1具體為包括步驟11、在GPU上分階段構造BVH樹;所述階段2具體為包括步驟21、在GPU上進行AABB重疊測試;步驟22、在GPU上進行基元三角形相交測試;所述階段3具體為包括步驟31、使用包圍盒修整的方式更新BVH樹結構。

    【技術特征摘要】
    1.一種面向GPU包圍盒碰撞檢測方法,其特征在于,包括以下三個階段:階段1、包圍盒層次結構構造階段;階段2、軸對齊包圍盒(AABB)碰撞檢測階段;階段3、包圍盒層次結構更新階段;其中,所述階段1具體為包括步驟11、在GPU上分階段構造BVH樹;所述階段2具體為包括步驟21、在GPU上進行AABB重疊測試;步驟22、在GPU上進行基元三角形相交測試;所述階段3具體為包括步驟31、使用包圍盒修整的方式更新BVH樹結構。2.如權利要求1所述的一種面向GPU包圍盒碰撞檢測方法,其特征在于,所述步驟11具體為:采用表面積啟發式算法策略來確定最優的分割點,進而形成包圍盒的節點。3.如權利要求2所述的一種面向GPU包圍盒碰撞檢測方法,其特征在于,計算每個潛在的分割點,然后采用寬度優先的方式計算各個采樣分割點的所述表面積啟發式算法花費,以確定加速結構中一個節點包圍盒的最優分割點位置。4.如權利要求3所述的一種面向GPU包圍盒碰撞檢測方法,其特征在于,計算每個潛在分割點的具體步驟為:Cp被設置為選取當前采樣點后進行遍歷和相交操作所可能產生的花費;nl和nr分別被設置為相應左子節點、右子節點所含的面片數量;S(Nl)、S(Nr)分別被設置為與當前采樣分割點相鄰的左子節點、右子節點的表面積,S(N)被設置為當前采樣分割點的父節點的表面積,KT被設置為對當前采樣分割點的父節點進行遍歷所產生的花費,KI被設置為對當前采樣分割點進行相交操作所產生的花費,利用公式Cp=KT+KI[nlS(Nl)+nrS(Nr)]/S(N)得到的最小的Cp...

    【專利技術屬性】
    技術研發人員:張新宇黃楠郭娟
    申請(專利權)人:華東師范大學
    類型:發明
    國別省市:上海,31

    網友詢問留言 已有0條評論
    • 還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。

    1
    主站蜘蛛池模板: 日韩精品无码Av一区二区| 中文字幕无码成人免费视频| 国产日产欧洲无码视频无遮挡 | 亚洲中文字幕无码av在线| 日韩网红少妇无码视频香港| 亚洲AV无码一区二区三区鸳鸯影院| 国产精品午夜无码体验区| 亚洲AV永久无码精品水牛影视| 无码亚洲成a人在线观看| 国模吧无码一区二区三区| 永久免费AV无码国产网站| 亚洲精品无码国产| 国产AV无码专区亚洲AV蜜芽| 欧洲精品久久久av无码电影| 超清无码一区二区三区| 国产精品无码AV不卡| 亚洲成无码人在线观看| 高h纯肉无码视频在线观看| 国产精品无码一区二区三区毛片| 人妻丰满熟妇无码区免费| 亚洲色无码专区在线观看| 人妻无码一区二区视频| 国产精品国产免费无码专区不卡 | 亚洲人成人无码网www国产| 亚洲国产精品无码久久九九大片| 无码欧精品亚洲日韩一区| 国内精品无码一区二区三区| 日韩精品无码一区二区视频| 国产一区二区三区无码免费| av色欲无码人妻中文字幕| 国产在线无码视频一区| 麻豆亚洲AV成人无码久久精品| 蜜色欲多人AV久久无码| 特级小箩利无码毛片| 国产午夜无码片在线观看影院| 久久美利坚合众国AV无码| 国产精品白浆在线观看无码专区| 国产精品无码专区AV在线播放 | 无码一区二区三区AV免费| 无码高潮爽到爆的喷水视频app| 无码国产精品久久一区免费|