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

    一種面向GPU的三角網格碰撞檢測方法技術

    技術編號:15692084 閱讀:124 留言:0更新日期:2017-06-24 05:49
    本發明專利技術公開了一種面向GPU的三角網格碰撞檢測方法,包括基本碰撞算法部分和算法優化部分。其中,基本碰撞算法的具體步驟包括:步驟11、進行三角形相交測試;步驟12、進行兩個物體間的碰撞檢測;算法優化部分利用減少內存訪問策略和共享內存策略兩種策略進行加速,具體步驟包括:步驟21(通過減少內存訪問次數的策略,對基本碰撞算法進行優化)、步驟22(通過內存共享的策略,對基本碰撞算法進行優化)、步驟23(結合減少內存訪問的次數和內存共享,對基本碰撞算法進行優化)。本發明專利技術的一種面向GPU的三角網格碰撞檢測方法,適用于中等復雜度的模型,降低了算法復雜度,提高了碰撞檢測算法的性能。

    A triangle mesh collision detection method for GPU

    The invention discloses a triangular mesh collision detection method for GPU, which comprises a basic collision algorithm part and an algorithm optimization part. Among them, the basic steps of collision algorithm comprises the following steps: step 11, triangle intersection test; step 12, the collision detection between two objects; algorithm optimization using strategies to reduce memory access and shared memory strategies two strategies are accelerated, the specific steps include: step 21 (the basic algorithm is optimized by reducing the collision the number of memory access strategies), step 22 (the basic collision algorithm is optimized through shared memory strategies), step 23 (combined to reduce the number of memory access and sharing, to optimize the basic collision algorithm). The invention relates to a triangular mesh collision detection method for GPU, which is suitable for a model with medium complexity, reduces the complexity of the algorithm and improves the performance of the collision detection algorithm.

    【技術實現步驟摘要】
    一種面向GPU的三角網格碰撞檢測方法
    本專利技術涉及計算機圖形學領域,尤其涉及一種面向GPU的三角網格碰撞檢測方法。
    技術介紹
    碰撞檢測(CollisionDetection,簡稱CD)技術用于檢測空間中的一個或多個幾何物體之間是否存在重疊,如果存在則識別重疊特征。碰撞檢測算法被廣泛地應用在計算機圖形學領域的多方面應用中,包括基于物理的動畫、幾何建模、6-DOF觸覺渲染、機器人路徑規劃、醫學成像、交互式計算機游戲等。隨著多核圖形處理器(GraphicsProcessingUnit,簡稱GPU)這樣的大規模并行處理器的快速發展,以及NVIDA推出的通用并行計算架構CUDA(ComputeUnifiedDeviceArchitecture,簡稱CUDA)。許多基于單處理器的算法已經利用CUDA技術擴展到GPU上。如層次包圍盒(BoundingVolumeHierarchy,簡稱BVH)結構就是提高碰撞檢測性能很好的技術。但是由于一般的串行算法對數據依賴較高,從存儲器結構訪問數據會有延遲。如BVH這類空間數據結構的算法復雜度較高,很多都需要進行預處理或是代價較高的數據結構重構。為了解決這些問題,首先,需要將這些有效的串行算法重新設計適用于大規模的并行處理器,其次,需要在保證碰撞檢測性能提高的基礎上,摒棄預處理以及代價較高的數據結構重構操作。因此,本領域的技術人員致力于開發一種面向GPU的三角網格碰撞檢測方法,利用對基本的碰撞檢測算法的優化在GPU上進行大規模并行計算來對物體進行快速、準確的碰撞檢測,算法適用于中等復雜度的模型,涉及基于分離軸的三角形相交測試、減少內存訪問優化策略、共享內存優化策略等方法,降低了算法復雜度,提高了碰撞檢測算法的性能。
    技術實現思路
    有鑒于現有技術的上述缺陷,本專利技術所要解決的技術問題是開發一種面向GPU的三角網格碰撞檢測方法,利用對基本的碰撞檢測算法的優化在GPU上進行大規模并行計算來對物體進行快速、準確的碰撞檢測,算法適用于中等復雜度的模型,涉及基于分離軸的三角形相交測試、減少內存訪問優化策略、共享內存優化策略等方法,降低了算法復雜度,提高了碰撞檢測算法的性能。為實現上述目的,本專利技術提供了一種面向GPU的三角網格碰撞檢測方法,包括基本碰撞算法部分和算法優化部分,其中,基本碰撞算法的具體步驟包括:步驟11、進行三角形相交測試;步驟12、進行兩個物體間的碰撞檢測;算法優化部分利用減少內存訪問策略和共享內存策略,具體步驟包括:步驟21、通過減少內存訪問次數的策略,對基本碰撞算法進行優化;步驟22、通過內存共享的策略,對基本碰撞算法進行優化;步驟23、結合減少內存訪問的次數和內存共享,對基本碰撞算法進行優化。進一步地,步驟11具體為:步驟111、尋找三角形對之間所有的潛在分離軸;步驟112、利用分離軸方式進行三角形相交測試。尋找潛在的分離軸方式:假設有三角形x1x2x3和三角形x4x5x6,π1、π2分別是三角形x1x2x3和三角形x4x5x6的平面法線,ei(i=1,…6)為三角形x1x2x3和三角形x4x5x6的邊,令L為潛在的分離軸,對于三維空間的兩個三角形,分離測試只要考慮有限集合的潛在的分離軸,這里的分離軸包括π1,π2,ei×ej(i=1,2,3;j=4,5,6),π1×ei(i=1,2,3),π2×ej(j=4,5,6)。進一步地,如果存在一條潛在分離軸L,通過將兩個三角形投影到分離軸L上進行相交測試。三角形x1x2x3在L上的投影區間被設置為三角形x4x5x6在L上的投影區間被設置為當I0與I1兩個投影區間不相交,判定兩個三角形不相交。特別的,當兩個三角形在L上的投影區間滿足或者時,這兩個三角形顯然是不相交的。進一步地,利用分離軸理論進行三角形相交測試時,相交測試的投影和區間測量方式操作類似,所以,已知任意一個投影區間不相交,就不用進行剩余的分離軸測試。如果所有分離軸測試結束,沒有一個區間是分離的,那么這兩個凸集必定相交。進行物體碰撞檢測,由于測試的物體是由三角形構成的網狀物體,所以利用三角形相交測試方法,將任意物體A和B之間的碰撞檢測轉化為A與B之間兩組三角形之間的相交計算。進一步地,兩個物體間的碰撞檢測具體為:每一個CUDA線程讀取物體A中的一個三角形a和物體B中的一個三角形b,然后計算它們對應的相交狀態;當三角形a和三角形b相交,它們對應的三角形索引號被存儲。進一步地,步驟21具體為:三角形數據被設置為讀取一次,多次使用;每一個CUDA線程讀取物體A中的一個三角形,同時讀取物體B中的K個三角形,每一個CUDA線程進行K次基礎碰撞檢測。進一步地,步驟22具體為:從設備內存加載三角形數據到共享內存,然后將數據同步給其他所有CUDA線程,使得每個CUDA線程都可以安全讀取到不同CUDA線程填充的共享內存地址;由于共享內存時稀缺資源,每次只能加載兩個物體的部分三角形數據進入共享內存。從物體A和B中分別加載K個三角形數據進入共享內存,利用共享內存的數據進行碰撞測試,最后將結果寫回設備內存。進一步地,步驟23具體為:利用共享內存的方式,先從物體A和物體B中分別加載K個三角形數據進入共享內存,然后利用共享內存中的三角形數據進行碰撞檢測。碰撞檢測時,利用減少內存訪問的策略,讀取物體A中的一個三角形與物體B中的所有三角形進行碰撞檢測,減少不必要數據的傳輸。技術效果1、減少內存的訪問次數,保證全局內存和設備內存之間的數據傳輸頻率;2、使用共享內存,充分利用共享內存中的資源,共享內存的速度比全局內存快,在共享內存中進行碰撞檢測,最后將碰撞結果寫回設備內存;3、實現在GPU上進行大規模并行計算來對物體進行快速、準確的碰撞檢測,算法適用于中等復雜度的模型,涉及基于分離軸的三角形相交測試、減少內存訪問優化策略、共享內存優化策略等方法,降低了算法復雜度,提高了碰撞檢測算法的性能。以下將結合附圖對本專利技術的構思、具體結構及產生的技術效果作進一步說明,以充分地了解本專利技術的目的、特征和效果。附圖說明圖1是本專利技術的一個較佳實施例的分離軸方式進行三角形相交測試的示意圖,其中(a)給出三維空間中的兩個三角形面片,(b)為兩個三角形其中一條分離軸測試示意圖。圖2是本專利技術的一個較佳實施例的物體A和物體B在GPU上進行碰撞檢測示意圖。圖3是本專利技術的一個較佳實施例的利用減少內存訪問優化策略,物體A和物體B在GPU上進行碰撞檢測示意圖;圖4是本專利技術的一個較佳實施例的利用共享內存優化策略,物體A和物體B在GPU上進行碰撞檢測示意圖;圖5是本專利技術的一個較佳實施例的結合減少內存訪問策略和共享內存優化策略,物體A和B在GPU上進行碰撞檢測示意圖。圖6是本專利技術的一較佳實施例的從物體A和物體B中分別加載K個三角形進入共享內存進行碰撞檢測示意圖。具體實施方式如圖1所示,本專利技術的一較佳實施例的一種面向GPU的三角網格碰撞檢測方法,包括基本碰撞算法部分和算法優化部分,其中,基本碰撞算法的具體步驟包括:步驟11、進行三角形相交測試;優選的,使用分離軸進行三角形相交測試;具體地,步驟11包括:步驟111、尋找三角形對之間所有的潛在分離軸;步驟112、利用分離軸方式進行三角形相交測試。步驟12、進行兩個物體間的碰撞檢測;進行物體碰撞檢本文檔來自技高網
    ...
    一種面向GPU的三角網格碰撞檢測方法

    【技術保護點】
    一種面向GPU的三角網格碰撞檢測方法,其特征在于,包括基本碰撞算法部分和算法優化部分,其中,所述基本碰撞算法的具體步驟包括:步驟11、進行三角形相交測試;步驟12、進行兩個物體間的碰撞檢測;所述算法優化部分利用減少內存訪問策略和共享內存策略,具體步驟包括:步驟21、通過減少內存訪問次數的策略,對基本碰撞算法進行優化;步驟22、通過內存共享的策略,對基本碰撞算法進行優化;步驟23、結合減少內存訪問的次數和內存共享,對基本碰撞算法進行優化。

    【技術特征摘要】
    1.一種面向GPU的三角網格碰撞檢測方法,其特征在于,包括基本碰撞算法部分和算法優化部分,其中,所述基本碰撞算法的具體步驟包括:步驟11、進行三角形相交測試;步驟12、進行兩個物體間的碰撞檢測;所述算法優化部分利用減少內存訪問策略和共享內存策略,具體步驟包括:步驟21、通過減少內存訪問次數的策略,對基本碰撞算法進行優化;步驟22、通過內存共享的策略,對基本碰撞算法進行優化;步驟23、結合減少內存訪問的次數和內存共享,對基本碰撞算法進行優化。2.如權利要求1所述的一種面向GPU的三角網格碰撞檢測方法,其特征在于,所述步驟11具體為:步驟111、尋找三角形對之間所有的潛在分離軸;步驟112、利用分離軸方式進行三角形相交測試。3.如權利要求2所述的一種面向GPU的三角網格碰撞檢測方法,其特征在于,尋找潛在的分離軸方式具體為:假設有三角形x1x2x3和三角形x4x5x6,π1、π2分別被設置為是所述三角形x1x2x3和所述三角形x4x5x6的平面法線,ei(i=1,…6)被設置為所述三角形x1x2x3和所述三角形x4x5x6邊;令L為潛在的分離軸,分離軸包括π1,π2,θi×θj(i=1,2,3;j=4,5,6),π1×θi(i=1,2,3),π2×θj(j=4,5,6)。4.如權利要求3所述的一種面向GPU的三角網格碰撞檢測方法,其特征在于,所述三角形x1x2x3在直線L上的投影區間被設置為所述三角形x4x5x6在所述潛在的分離軸L上的投影區間被設置為如果存在一條直線L,使得I0與I...

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

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

    1
    主站蜘蛛池模板: 精品久久久无码中文字幕| 亚洲av无码不卡久久| 伊人久久大香线蕉无码麻豆 | 中文无码熟妇人妻AV在线| 国产成人无码精品久久久免费 | 一本加勒比HEZYO无码人妻| 小SAO货水好多真紧H无码视频 | 亚洲成av人片不卡无码久久| 少妇精品无码一区二区三区| 日韩乱码人妻无码中文视频| 久久精品岛国av一区二区无码| 精品人妻系列无码人妻漫画| YW尤物AV无码国产在线观看| 亚洲AV无码久久寂寞少妇| 亚欧无码精品无码有性视频| 亚洲成av人无码亚洲成av人| 国产在线无码一区二区三区视频| 成人免费无码大片a毛片软件| 免费无码VA一区二区三区| 日韩精品无码免费专区午夜| 中文字幕无码不卡一区二区三区| 无码人妻少妇色欲AV一区二区| 国产成人无码专区| 无码人妻H动漫中文字幕| 无码专区AAAAAA免费视频| 国产成人无码一区二区三区在线 | 亚洲国产成人片在线观看无码| 久久水蜜桃亚洲AV无码精品| 人妻中文字系列无码专区| 国产V亚洲V天堂无码| 中文字幕无码视频专区| 精品一区二区三区无码免费直播 | 国产精品午夜无码体验区 | 无码人妻一区二区三区免费n鬼沢| 国产啪亚洲国产精品无码| 亚洲精品无码av天堂| 亚洲va中文字幕无码| 18禁超污无遮挡无码免费网站| 成人免费无码H在线观看不卡| 中国少妇无码专区| 伊人久久精品无码av一区|