一種流體環(huán)境影響下的群體行為控制技術的制作方法
【專利摘要】本發(fā)明提供了一種在流體環(huán)境影響下的群體行為控制技術。在基于物理的流體仿真方面,通過求解計算流體動力學方程(Navier-Stokes方程)中的平流項、外力項和壓力項,更新流體的水平集、速度等物理量,基于GPU(GraphicProcessingUnit)完成流體的仿真計算。在基于勢能場的群體行為規(guī)劃方面,對于局部勢能場和全局勢能場進行有效的融合。從而在保證路徑最優(yōu)的同時,提高運算效率。在流體環(huán)境對于群體行為的影響方面,主要是通過對于個體(Agent)產(chǎn)生作用力來影響最終的導航力,以達到對于群體行為控制的目的。本發(fā)明能夠有效地實現(xiàn)流體環(huán)境影響下的群體行為控制的真實效果。
【專利說明】一種流體環(huán)境影響下的群體行為控制技術
【技術領域】
[0001] 本發(fā)明屬于虛擬現(xiàn)實【技術領域】,尤其涉及一種流體環(huán)境影響下的群體行為控制技 術方法。
【背景技術】
[0002] 群體動畫在計算機游戲、影視動漫、城市建筑規(guī)劃等很多方面都有著廣泛的應用。 然而,對大規(guī)模群體行為進行仿真尤其是實時仿真是一件復雜而艱巨的工作。因為對群體 行為的仿真不僅涉及到高層的決策過程,還同時要考慮底層事物的表示以及事物之間的交 互計算。更為麻煩的是,個體與個體之間以及個體與環(huán)境之間的復雜約束關系決定了在群 體規(guī)模增大的時候,仿真運算復雜度將呈非線性增長。
[0003] 在計算機仿真研究領域,流體仿真是其中一個重要的研究方向,它就像是一種有 用的建筑積木,是仿真很多自然現(xiàn)象的基礎。而基于物理學的流體(如煙、水、火)動畫提 供了計算機圖形中最讓人嘆為觀止的視覺效果。然而由于其巨大的計算成本,它在歷史上 一直屬于高質(zhì)量離線渲染的領域。在實時應用中,3D流體的效果往往都是依賴于粒子系統(tǒng) 實現(xiàn)。盡管粒子系統(tǒng)能夠產(chǎn)生很具有吸引力的結(jié)果,但是它們并不符合流體的真實外觀和 行為?;谖锢淼膶崟r流體仿真仍然是一種挑戰(zhàn),尤其是流體與各種各樣的障礙物進行交 互的仿真模擬。
[0004] 流體環(huán)境影響下的群體行為控制很少有人研究,這是因為其本身的復雜度和計算 機軟硬件條件的限制。但是,群體行為控制中添加流體的影響可以增加模擬的真實度。同 時,在游戲、動畫等實際應用方面也有較大的需求。
【發(fā)明內(nèi)容】
[0005] 為了使群體行為更接近真實效果,本發(fā)明提供了一種流體環(huán)境影響下的群體行為 控制技術。本發(fā)明分別實現(xiàn)了基于物理的流體仿真、基于勢能場(勢能使用一個數(shù)值進行 表示,群體運動的趨勢是從高勢能的地方到低勢能的地方,對于場景中的個體來說,會判斷 周圍勢能的大小,從而向勢能低的地方運動)的群體行為規(guī)劃和流體環(huán)境對于群體行為的 影響。在基于物理的流體仿真方面,通過求解計算流體動力學方程中的平流項、外力項和壓 力項,更新流體的水平集、速度等物理量,完成流體的仿真計算。對于流體中求出的物理量, 將其存儲在紋理(一種數(shù)據(jù)結(jié)構(gòu),類似于CPU上的數(shù)組。在GPU上對于數(shù)據(jù)進行讀寫操作, 大部分都是基于紋理這種數(shù)據(jù)結(jié)構(gòu)。對于紋理而言,是由紋理元素簡稱紋素構(gòu)成,它可以設 定為單個通道或者多個通道)中。然后,流體的仿真計算就可以在GPU(圖形處理器,它是 相對于CPU的一個概念,是一個專門的圖形的核心處理器)下進行,大大提高了仿真的效 率。在基于勢能場的群體行為規(guī)劃方面,將目的地設置為勢能最低的地方,對于個體周圍和 障礙物周圍則設置較高的勢能。從而能夠使得群體向著目的地運動,對于周圍的障礙物和 其他個體能夠進行很好的規(guī)避。對于局部勢能場和全局勢能場進行有效的融合,從而在保 證路徑最優(yōu)的同時,提高運算效率。將整個群體劃分為多個小群體,這些小群體具有共同的 特征。通過這種方式,可以減少勢能的計算,提高效率。在流體環(huán)境對于群體行為的影響方 面,主要是通過流體環(huán)境對個體產(chǎn)生作用力,從而影響個體的速度,然后達到對于群體行為 控制的目的。本發(fā)明能夠有效的實現(xiàn)流體環(huán)境影響下的群體行為控制的真實效果。
[0006] 本發(fā)明一種流體環(huán)境影響下的群體行為控制技術,該方法包括步驟:
[0007] 步驟1,初始化流體的水平集、速度等物理量,對流體的水平集和速度進行平流;
[0008] 步驟2,處理靜態(tài)場景物體,生成靜態(tài)局部勢能網(wǎng)格;
[0009] 步驟3,根據(jù)"靜態(tài)局部勢能"網(wǎng)格,針對每個網(wǎng)格點,生成對應的全局勢能網(wǎng)格;
[0010] 步驟4,處理動態(tài)物體,更新周圍網(wǎng)格;
[0011] 步驟5,對于路徑規(guī)劃所需要考慮的因素進行計算,這里的因素主要是指目的地的 位置和個體所受的作用力;路徑規(guī)劃是指個體為了到達目的地所選擇的路徑;
[0012] 對于路徑規(guī)劃所需要考慮的因素進行計算,這里的因素主要是指目的地的位置和 個體所受到的作用力;目的地的位置使用全局的最小勢能表示;如果全局中有若干個目的 地,則令這些目的地的勢能具有同樣的大小,即同時保持全局最??;當群體中個體的目的地 信息確定之后,接下來最重要的因素就是群體中個體所受到的作用力;通過個體所受到的 作用力,可以得到加速度,從而對于個體的速度產(chǎn)生影響;假設個體是以環(huán)境所能允許的最 大速度行進,這里的環(huán)境是指上下坡的坡度以及人流量的大小因素;計算個體速度如公式 (1) 所示:
[0013] v = u (χ, θ ) η 9 (1)
[0014] 其中,u表示最大速度場,χ為個體所在位置,Θ表示速度的方向,η0 = [cos Θ, sin θ]τ表示在Θ方向上的單位向量。
[0015] 上述的個體速度ν沒有考慮周圍環(huán)境的影響,這里使用g表示周圍環(huán)境的影響,即 是個體受到周圍環(huán)境的作用力,對于g來說,它是可以動態(tài)變化的。通過動態(tài)變化的環(huán)境作 用力可以幫助個體規(guī)避動態(tài)的障礙物,例如汽車等。
[0016] 將上述因素結(jié)合起來考慮,下面描述個體進行路徑規(guī)劃需要考慮的因素??偟膩?說,個體會選擇到達目的地的最短路徑。假定D為從地點χ到目的地的路徑集合,一個位于 χ的個體選擇的路徑P e D,按照如下公式(2)所示:
[0017] L+T+g (2)
[0018] 其中,L表示路徑的長度,T表示所消耗的時間,g表示環(huán)境作用力。這里的公式 (2) 描述了路徑規(guī)劃所需要考慮的三個因素,即路徑長度、通過路徑的時間和所受的環(huán)境作 用力。通過這三個因素的權衡,可以得到最終所選擇的路徑。
[0019] 步驟6,處理流體環(huán)境,計算流體環(huán)境對于周圍個體產(chǎn)生的作用力,并計
[0020] 算最終的導航力;所謂導航力,是通過對于個體的受力進行分析之后,得到的最終 的合力,它會影響個體如何運動。
[0021] 處理流體環(huán)境,計算流體環(huán)境對于周圍個體產(chǎn)生的作用力,并計算個體最終的導 航力時,又進一步包括:
[0022] 步驟6. 1,對流體區(qū)域所在的網(wǎng)格進行切片,在每個切片上區(qū)分是個體還是流體。 對于每一個切片來說,個體區(qū)域和流體區(qū)域分別使用不同數(shù)值進行標記,這樣就能區(qū)分每 一個切片上的個體區(qū)域和流體區(qū)域。然后,做一次最終遍歷,根據(jù)每一個切片,把數(shù)值復制 到3D紋理(這個3D紋理稱之為流固3D紋理)中去。
[0023] 步驟6.2,與步驟6. 1的做法類似,對于流體網(wǎng)格進行切片。然后,將網(wǎng)格切片與 個體網(wǎng)狀模型進行相交操作。在將切片與網(wǎng)狀模型相交時,通過將個體網(wǎng)狀模型劃分成三 角形圖元來實現(xiàn)。在得到三角形圖元與切片的交點之后,通過插值即可得到流體與個體相 交的邊界點。然后,創(chuàng)建一個新的3D紋理(這個3D紋理稱之為邊界3D紋理,同流固3D紋 理的大小和維度一致)用于存放邊界點的信息。在得到邊界3D紋理之后,通過對于邊界點 周圍的單元進行判斷,可以得到邊界點處的法向。將邊界點的法向存儲于一個新的3D紋理 (這個3D紋理稱之為法向3D紋理,同邊界3D紋理的大小和維度一致)。
[0024] 步驟6. 3,考慮流體環(huán)境對于個體施加的作用力,通過將個體所受的全部作用力進 行矢量合成之后,即可得到最終的導航力。流體環(huán)境對于個體施加的作用力如公式(3)所 示:
[0025]
【權利要求】
1. 一種流體環(huán)境影響下的群體行為控制技術,其特征在于,該方法包括以下步驟: 步驟1,初始化流體的水平集、速度,對流體的水平集和速度進行平流; 步驟2,處理靜態(tài)場景物體,生成靜態(tài)局部勢能網(wǎng)格; 步驟3,根據(jù)靜態(tài)局部勢能網(wǎng)格,針對每個網(wǎng)格點,生成對應的全局勢能網(wǎng)格; 步驟4,處理動態(tài)物體,更新周圍網(wǎng)格; 步驟5,對于路徑規(guī)劃所需要考慮的因素進行計算; 步驟6,處理流體環(huán)境,計算流體環(huán)境對于周圍個體產(chǎn)生的作用力,并計算最終的導航 力; 步驟7,根據(jù)最終的導航力產(chǎn)生的加速度,得到個體的速度,通過速度來實現(xiàn)個體的路 徑規(guī)劃以及規(guī)避障礙物; 步驟8,求解流體環(huán)境的壓力項,得到流體的最終速度,并調(diào)整邊界點處的水平集信 息; 步驟9,對于流體環(huán)境與個體的邊界進行處理,使兩者在邊界處滿足自由滑動邊界條 件。
【文檔編號】G06T17/30GK104299265SQ201410564383
【公開日】2015年1月21日 申請日期:2014年10月22日 優(yōu)先權日:2014年10月22日
【發(fā)明者】盧光輝, 溫泉, 陳雷霆, 蔡洪斌, 曹躍, 邱航, 崔金鐘 申請人:電子科技大學, 東莞電子科技大學電子信息工程研究院