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

基于CUDA的并行沙粒模擬方法

2020-08-31 14:52:09吳蔚
科技創(chuàng)新與應用 2020年25期

吳蔚

摘 ?要:沙粒模擬是計算機圖形學中重要的研究內容。文章提出一種基于CUDA的并行化沙粒模擬方法,使用PCISPH流體模擬的算法實現(xiàn)沙粒流動過程,并加入摩擦力模型保持沙粒穩(wěn)定堆積的效果。算法利用多線程進行數(shù)值求解,充分挖掘了GPU并行計算的性能優(yōu)勢。實驗表明,該算法可以實現(xiàn)高效的沙粒模擬,在動畫、電影、工程等領域具有重要的應用價值。

關鍵詞:沙粒模擬;SPH;并行計算;CUDA

中圖分類號:TP391.7 ? ? ? 文獻標志碼:A ? ? ? ? ? ? ?文章編號:2095-2945(2020)25-0009-02

Abstract: Sand simulation is the key research content in computer graphics. A parallel sand simulation method based on CUDA is proposed, which use the PCISPH fluid simulation method to realize the free sand flow and adopt the friction model to keep in stable sandpile. The numerical solution is processed by multithread, which helps to fully excavate the performance advantage of GPU parallel computing. Experiments suggest that the method can realize the sand simulation efficiently, and bear important application value in the field of animation, movie, engineering, etc.

Keywords: sand simulation; SPH; parallel computing; CUDA

1 概述

沙粒等固體顆粒的模擬,是計算機圖形學中重要的研究內容,被廣泛應用在動畫、電影、工程等領域。在現(xiàn)實中可以觀察到,不穩(wěn)定的沙堆可以像流體一樣流動。但與流體不同的是,沙粒內部的能量可以迅速消散,當這種能量達到一個較低值時,沙堆便會保持靜止的堆積狀態(tài)。之所以會表現(xiàn)出這樣復雜的特性,正是由于沙粒顆粒之間相互作用的結果。對于沙粒所表現(xiàn)出的流動的效果,可以采用流體模擬的方法。而沙粒最終會趨于靜止,卻是由于沙粒之間的摩擦力抵消掉了重力的影響。因此沙粒模擬可以采用流體模擬的方法中加入粒子間摩擦力實現(xiàn)。

現(xiàn)今對于流體的模擬通常有兩類,即基于網(wǎng)格的歐拉方法和基于粒子的拉格朗日方法。歐拉方法將模擬區(qū)域劃分為網(wǎng)格,基于固定的網(wǎng)格點研究各時刻物理量在流場中的變化規(guī)律,其計算結果具有較高的數(shù)值精度;而拉格朗日方法則跟隨質點運動,追蹤它們的物理量隨時間變化的規(guī)律,其更適用于需要表現(xiàn)表面細節(jié)或發(fā)生大變形的流體模擬應用中。SPH(Smoothed Particle Hydrodynamics)方法是一種典型的基于拉格朗日視角的流體模擬方法,近年來成為最具前景的流體模擬方法之一。該方法將連續(xù)的流體離散成粒子,每個粒子攜帶一定的物理量,比如密度、壓強等,通過追蹤每個粒子的物理量變化從而表現(xiàn)整個流體的運動過程。在沙粒模擬中,單純使用SPH流體模擬方法并不能保持沙粒靜止堆積的狀態(tài)。因此沙粒粒子之間除了受到壓強力和速度差導致的黏性力等外力,還需要加入摩擦力的影響。Alduan等人[1]提出了一種基于SPH的沙粒模擬方法,使用結合單側不可壓縮性的PCISPH方法模擬沙粒的流動,并加入摩擦力模型實現(xiàn)了沙粒的堆積效果。

通常來說,基于粒子的數(shù)值計算方法比基于網(wǎng)格的方法更加高效,然而SPH方法中模擬介質通常被離散成大量的粒子,每個粒子的物理量求解又依賴于對鄰域粒子的搜索以完成插值計算,采用傳統(tǒng)的CPU進行迭代式地求解很難達到實時性的要求。因此有研究者提出使用GPU對SPH求解進行加速的方法。比如Harada等[2]將SPH計算過程全部在GPU上實現(xiàn),并使用桶紋理結構實現(xiàn)了高效的鄰域搜索算法。Junior等[3]不僅實現(xiàn)了GPU上的數(shù)值求解,還使用空間哈希函數(shù)改進了鄰域搜索算法,實現(xiàn)了無邊界的流體模擬。

本文基于CUDA架構實現(xiàn)了并行化的沙粒模擬過程,將Alduan等人[1]的PCISPH數(shù)值求解和摩擦力模型完全基于GPU進行并行化處理,避免了CPU和GPU之間不必要的數(shù)據(jù)傳輸,顯著提升了沙粒模擬的運算效率。

2 基于CUDA架構實現(xiàn)沙粒模擬

2.1 PCISPH方法

采用標準SPH方法模擬的沙粒具有可壓縮性,嚴重影響模擬的效果。本文使用PCISPH方法實現(xiàn)沙粒的不可壓縮模擬,每個時間步的算法步驟如下:

(1)首先針對每一個粒子搜索一定范圍內的鄰域粒子,用于后續(xù)各種物理量的計算;

(2)使用SPH插值方法計算出所有非壓強力,比如粒子間粘性力、重力、所受外力等。同時將壓強和壓強力初始化為0;

(3)使用預測-矯正策略循環(huán)更新壓強和壓強力的值。迭代之初,使用粒子所受合力預測粒子臨時速度和臨時位置,并基于預測的位置信息預估出粒子的密度信息。該密度值用于矯正壓強和壓強力,并作為是否繼續(xù)下一迭代的依據(jù)。若當前預測的密度值過大,說明粒子之間過于緊密,需要按照如下公式增大粒子所受壓強Pi:

Pi+=δρerr

其中δ為預計算的常量,ρerr為與預測的密度相關的變量。所得壓強值用于計算出新的壓強力,重新進入循環(huán)更新粒子的速度和位置。經(jīng)過若干次迭代,粒子間距便可滿足預先設定的壓縮率要求;

(4)基于粒子所有更新后的力進行時間積分,得到下一時間步的粒子速度和位置。

上面步驟中第(3)步包含若干次迭代計算,是整個算法最耗時的部分。這種迭代式的方式使得每個時間步的計算比標準SPH方法花費更多的時間。然而該方法允許設置較大的時間步長,這反而極大地提升了沙粒模擬整體的運行效率。

2.2 添加摩擦力模型

與單純的流體模擬不同,沙粒模擬還需要添加粒子間摩擦力,從而阻止粒子間的相對滑動。摩擦力模型基于最大耗散原則實現(xiàn),這又可通過最小化應變速率來表達。為此,使用反推法基于粒子間相對速度得到粒子應變速率值,然后迭代地計算出摩擦應力張量值s,從而計算出粒子所受摩擦力大小:

其中θ為預定義的靜止角,用來決定沙粒穩(wěn)定堆積的坡度。由于該摩擦力模型本質上也是基于預測-矯正策略,因此可以很容易地集成到前述PCISPH方法中。

2.3 基于CUDA的算法實現(xiàn)

SPH作為一種典型的拉格朗日方法,存在大量粒子間無關的數(shù)值計算過程,因此可以充分借助GPU的性能優(yōu)勢實現(xiàn)高度并行化。算法初始化時,所有沙粒粒子的屬性數(shù)據(jù)及邊界信息從CPU端內存拷貝到GPU端顯存。后續(xù)的數(shù)值計算完全在GPU端進行,避免了CPU和GPU之間不必要的數(shù)據(jù)傳輸。

沙粒模擬的每一幀都需要計算出所有粒子更新后的屬性值,比如密度、壓強、應變速率等,以及各種受力,比如壓強力、摩擦力等。在CUDA編程模型中,可以并行執(zhí)行的代碼稱為核函數(shù)。因此針對沙粒模擬中的鄰域搜索及各種物理量的計算,本文使用核函數(shù)創(chuàng)建的輕量級線程與每個粒子一一對應,實現(xiàn)對所有粒子的并行化處理。

2.4 實例驗證

為了驗證上述算法,設計了沙粒模擬實驗,如圖1所示。初始時由沙粒顆粒組成的長方體沙堆位于長方體盒子包圍下的角落位置。相比于流體模擬,沙粒模擬由于粒子間摩擦力的作用,在流動過程中逐漸呈現(xiàn)出明顯的堆積效果,驗證了本文沙粒模型的準確性。為了對本文基于CUDA的并行算法效果進行驗證,針對沙粒模擬場景分別采用CPU串行和GPU并行的方式實現(xiàn),每幀平均運行時間對比如表1所示。可以看到,相比于串行方式,并行化使得算法在運行效率上達到了8倍的加速比,充分驗證了本文并行化算法的有效性。

3 結束語

本文基于CUDA框架實現(xiàn)了并行化的沙粒模擬過程,將PCISPH流體模擬的方法和摩擦力模型完全基于GPU進行數(shù)值求解,充分挖掘了GPU并行計算的性能優(yōu)勢,提升了沙粒模擬的運行效率。今后的研究將在本文研究的基礎上繼續(xù)探索CUDA優(yōu)化技術在大規(guī)模沙粒模擬場景中的效果。

參考文獻:

[1]Alduán I, Otaduy M A. SPH granular flow with friction and cohesion[C]//Proceedings of the 2011 ACM SIGGRAPH/Eurographics symposium on computer animation, 2011: 25-32.

[2]Harada T , Koshizuka S , Kawaguchi Y . Smoothed Particle Hydrodynamics on GPUs[J]. Proc.computer Graphics Int.rio De Janeiro Brazil May Jun, 2007, 4(4):671-691.

[3]Junior J R S, Joselli M, Zamith M, et al. An architecture for real time fluid simulation using multiple GPUs[J]. XI SBGames, Brasília, 2012:8.

主站蜘蛛池模板: 91精品人妻互换| 高清无码一本到东京热| 99在线免费播放| 久久夜色撩人精品国产| 国产噜噜噜| 亚洲日韩精品伊甸| 亚洲欧洲美色一区二区三区| 制服丝袜国产精品| 性色生活片在线观看| 91久久偷偷做嫩草影院| 夜夜操天天摸| 日本一区高清| 在线观看91香蕉国产免费| 国产在线视频自拍| 久久一日本道色综合久久| 国产永久免费视频m3u8| 亚洲an第二区国产精品| 在线观看91香蕉国产免费| 国产在线视频二区| 久久一日本道色综合久久| 久久综合丝袜长腿丝袜| 国产精品密蕾丝视频| 欧美va亚洲va香蕉在线| 国产屁屁影院| 国产性精品| 亚洲人成高清| 人妻丰满熟妇av五码区| 鲁鲁鲁爽爽爽在线视频观看| 国产产在线精品亚洲aavv| www.精品国产| 国产成人精品视频一区视频二区| 狠狠v日韩v欧美v| 欧美综合区自拍亚洲综合天堂 | 国产精品片在线观看手机版| 日本手机在线视频| 97久久精品人人做人人爽| 国产人人射| 久久人体视频| 国产成人91精品| www欧美在线观看| 久草视频一区| 综合网天天| 成年女人18毛片毛片免费| 毛片网站免费在线观看| 在线观看无码a∨| 最新国产麻豆aⅴ精品无| 青青草综合网| 国产色网站| 国产无码高清视频不卡| 喷潮白浆直流在线播放| 2021天堂在线亚洲精品专区| 99久久亚洲综合精品TS| 成年人久久黄色网站| 日本午夜视频在线观看| 国产精品第页| 天天躁夜夜躁狠狠躁图片| 日本91视频| 久久亚洲黄色视频| 欧美啪啪精品| 国产综合精品日本亚洲777| 中文字幕一区二区视频| 国产中文一区二区苍井空| 999精品色在线观看| 国产区福利小视频在线观看尤物| 日韩二区三区| 日韩小视频在线观看| 成人小视频在线观看免费| 亚洲天堂在线免费| 国模私拍一区二区三区| 91在线视频福利| 亚洲视频免| 91国内外精品自在线播放| 亚洲综合第一区| 精品国产亚洲人成在线| 精品久久人人爽人人玩人人妻| 天天做天天爱夜夜爽毛片毛片| 亚洲一区二区无码视频| 国产专区综合另类日韩一区| 国产午夜无码专区喷水| 91小视频在线| 日韩黄色精品| 98超碰在线观看|