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的三角網格碰撞檢測方法,其特征在于,包括基本碰撞算法部分和算法優化部分,其中,所述基本碰撞算法的具體步驟包括:步驟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...
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。