基于gpu的三維海洋矢量場動態(tài)脈面可視化算法
【技術領域】
[0001]本發(fā)明屬于信息技術和海洋技術領域,尤其涉及基于GPU的三維海洋矢量場動態(tài)脈面可視化算法。
【背景技術】
[0002]流場可視化是可視化研宄的一個重要方向,在科學計算和工程分析中占據(jù)著非常重要的地位,其對海洋的科學研宄與分析也具有十分重要的意義和價值。
[0003]在交互性流場可視化中,對流線的積分以及可視化從開始就已經(jīng)成為一種標準工具。在時變流場中,因為跡線和脈線能夠反映出流場的重要特征已經(jīng)成為了研宄的關注點。跡線可以表現(xiàn)流體質(zhì)點的運動軌跡,脈線可以表現(xiàn)某指定時刻所有那些曾經(jīng)過某定點的流體質(zhì)點所組成的曲線。
[0004]在流線可視化的基礎上,積分曲面的可視化也已經(jīng)證實了其有效性。流面以及軌跡面的的構建是易于理解的,主要思想就是對面最前的線進行積分,并且會在適當?shù)臅r候進行對線的自適應的精細或粗化。隨著線的生長,產(chǎn)生的面并不會產(chǎn)生變化。而脈面可視化卻要復雜許多,每一個時間幀都要對流場所有數(shù)據(jù)進行重新計算繪制,這對于算法以及計算機性能有了很大要求。
[0005]在計算機輔助的流場可視化領域,幾種不同的可視化方法也存在著類比,但是脈面可視化也因為它計算的復雜性,很少被海洋流場可視化所應用。脈面可視化可能會在任何地方改變形狀,并且每個空間點,每個時刻都在進行著積分運算,脈面的每個部分在每個時間都在進行粗化或細分策略的執(zhí)行。這在一方面可能會受計算機運算效率的限制,另一方面可能會對數(shù)據(jù)進行一定限制。
[0006]國內(nèi)外在脈面的可視化方面也做了許多相關的研宄,并且分別在CPU上或者GPU上進行脈面可視化的實現(xiàn),但是針對海洋三維流場可視化的應用并沒有相關實際使用及實現(xiàn),并且也沒有針對海洋數(shù)據(jù)的特點進行相關的實驗及進展,而脈面可視化卻有對海洋科研人員進行海洋數(shù)據(jù)的處理以及更深入了的理解有巨大的幫助。
【發(fā)明內(nèi)容】
[0007]本發(fā)明提供一種基于GPU的三維海洋矢量場動態(tài)脈面可視化算法。其在海洋三維矢量場進行脈面可視化是完全基于GPU進行可視化架構的構建,并且針對海洋z坐標數(shù)據(jù)特點進行在GPU中的數(shù)據(jù)處理,本方案最終形成原型驗證系統(tǒng)。
[0008]為實現(xiàn)上述目的,本發(fā)明采用如下技術方案,其包括以下步驟:
(1)基于GPU的海洋三維矢量場動態(tài)脈面可視化架構構建;
(2)針對海洋矢量場Z坐標數(shù)據(jù)進行直接地可視化。
[0009]本發(fā)明旨在研宄基于GPU的三維海洋矢量場動態(tài)脈面可視化算法。
[0010]本發(fā)明的設計思路是:建立基于GPU的海洋三維矢量場動態(tài)脈面可視化架構,將三維流場數(shù)據(jù)以紋理的方式存儲在GPU中,并且在GPU中的Geometry Shader (幾何元著色器)中進行細化或粗化策略的執(zhí)行,在Vertex Shader (頂點著色器)中進行粒子的積分,通過GPU的ping-pong Fash1n特性進行粒子的不斷驅(qū)動。
[0011 ] 所述步驟(I)中,針對海洋數(shù)據(jù)的特點,海洋三維矢量場數(shù)據(jù)以三維紋理的方式存儲在GPU中,并提前存儲tl,t2兩個時間點的數(shù)據(jù)在GPU,CPU中用來進行多個時間點矢量場數(shù)據(jù)的保存并可以根據(jù)時間t進行與GPU之間數(shù)據(jù)的交換,同時,CPU中也可以通過文件讀取的方式進行CPU中數(shù)據(jù)的交換。
[0012]所述步驟(2)中,針對海洋Z坐標數(shù)據(jù)的特點,將海洋變量場數(shù)據(jù)存儲于三維紋理中,并在GPU中通過對同一張紋理采樣多次將不同深度的數(shù)據(jù)進行插值,采樣成均勻的等深的三維矢量場數(shù)據(jù),以此進行三維時變矢量場數(shù)據(jù)的可視化。
[0013]本發(fā)明的創(chuàng)新之處主要體現(xiàn)在:
(1)進行了針對海洋Z坐標數(shù)據(jù)特點的,基于GPU的脈面可視化的架構的搭建;
(2)針對海洋矢量場Z坐標數(shù)據(jù),通過將數(shù)據(jù)傳輸?shù)紾PU中,在GPU中進行數(shù)據(jù)的處理,將數(shù)據(jù)處理成均勻等深的數(shù)據(jù),以此在構建好的可視化架構基礎上進行三維時變矢量場數(shù)據(jù)的可視化。
[0014]本發(fā)明的有益效果在于:使用力學中脈線發(fā)展出來的脈面來進行海洋三維時變矢量場數(shù)據(jù)的可視化,以一種新的海洋流場可視化方法來幫助海洋科研工作者進行相關的科研活動。
【具體實施方式】
[0015]本發(fā)明的基于GPU的三維海洋矢量場動態(tài)脈面可視化算法,包括以下步驟:
(I)基于GPU的海洋三維矢量場動態(tài)脈面可視化架構構建。
[0016]每個表面塊是由四個頂點組成,并且還存儲兩個值,一個計算積分步的值,一個計算細化深度的值來表示。這些數(shù)據(jù)都在頂點數(shù)組緩存中存在一個連續(xù)的數(shù)據(jù)塊中。因為GPU中不是動態(tài)實時的改變存儲在其中數(shù)據(jù)的大小,因此對于粒子的數(shù)據(jù)需要提前申請好,這對表現(xiàn)數(shù)據(jù)的大小及范圍就有了一定的限制。通過用戶選擇表面塊的數(shù)據(jù)n,最大細化深度n,還有最大積分步m,緩存申請的存儲表面塊的數(shù)目是nX 2dX (m-d+1 )。時間線為在同一時刻釋放的粒子。具體的算法流程如下。
[0017]1.時間線釋放,每條時間線是粒子的集合(xi, 0....,xi, η)。
[0018]2.將每條時間線計算成表面塊,每個表面塊由四個頂點組成,而且分開重復存儲。
[0019]3.首先存儲η個空的表面塊pO j (j= 0,U..n_l)o
[0020]4.每個時間步重復釋放新的表面塊到流水線中。
[0021]5.在積分前,會進行細化策略。會判斷是否分成兩個表面塊。設定一個閾值s2,s是兩相鄰粒子的距離,當一個表面塊的面積大于a s2時,就將表面塊的最長邊與最短邊從中點相連進行細分。其中α是一個大于I的數(shù)用來控制細分程度。這樣兩個新的表面塊進行存儲,刪除原來的表面塊。
[0022]6.每個積分步,所有的緩存元素傳遞到Geometry Shader中然后按下面方法處理:傳遞前n/2個元素p0 j (j= 0,1,2…n/2-l),同時將pOj *2和p0 (j*2)+1放到輸出緩存中。剩下的每n/2個元素shader會添加2個塊元素到緩存中,來存儲存儲他們積分后的新位置。
[0023]7.粒子的積分采用四階龍格庫塔積分,并且通過GPU的ping-pong Fash1n進行粒子的更新。
[0024](2)針對海洋矢量場Z坐標數(shù)據(jù)進行直接地可視化。
[0025]海洋Z坐標數(shù)據(jù)為每層等深但層間間隔分布不均勻的數(shù)據(jù),在本算法中,針對此類數(shù)據(jù),將數(shù)據(jù)存儲于三維紋理中,并在GPU中通過對同一張紋理采樣多次,每次采樣分別采樣其所在深度的相鄰兩層的深度值,并根據(jù)所需數(shù)據(jù)的深度間隔進行線性差值,以此進行三維時變矢量場數(shù)據(jù)的可視化。
【主權項】
1.基于GPU的海洋三維矢量場脈面動態(tài)可視化算法,其特征在于,包括以下設計思路: (1)基于GPU的海洋三維矢量場脈面動態(tài)可視化架構構建; (2)針對海洋矢量場z坐標數(shù)據(jù)進行直接地可視化。
2.根據(jù)權利要求1所述的基于GPU的海洋三維矢量場脈面動態(tài)可視化算法,其特征在于,所述步驟(I)中,針對海洋數(shù)據(jù)的特點,海洋三維矢量場數(shù)據(jù)以三維紋理的方式存儲在GPU中,并提前存儲tl,t2兩個時間點的數(shù)據(jù)在GPU,CPU中用來進行多個時間點矢量場數(shù)據(jù)的保存并可以根據(jù)時間t進行與GPU之間數(shù)據(jù)的交換,同時,CPU中也可以通過文件讀取的方式進行CPU中數(shù)據(jù)的交換。
3.根據(jù)權利要求1所述的基于GPU的海洋三維矢量場脈面動態(tài)可視化算法,其特征在于,所述步驟(2 )中,針對海洋Z坐標數(shù)據(jù)的特點,將海洋變量場數(shù)據(jù)存儲于三維紋理中,并在GPU中通過對紋理進行采樣,并將數(shù)據(jù)進行線性插值,處理成均勻的等深的三維矢量場數(shù)據(jù),以此進行三維時變矢量場數(shù)據(jù)的可視化。
【專利摘要】本發(fā)明涉及一種基于GPU的三維海洋矢量場動態(tài)脈面可視化算法。該算法針對海洋數(shù)據(jù)特點,將海洋三維矢量場數(shù)據(jù)以三維紋理方式存儲在GPU中,利用ping-pong fashion驅(qū)動矢量場中粒子流動,并結(jié)合GPU的geometry shader(幾何元著色器),進行三維脈面的粒子間粗化及細化。針對海洋Z坐標數(shù)據(jù)的特點,在GPU中采樣成均勻的等深的三維矢量場數(shù)據(jù),以此進行三維時變矢量場數(shù)據(jù)的可視化,輔助海洋科研人員進行科學研究與分析。
【IPC分類】G06T17-00
【公開號】CN104732582
【申請?zhí)枴緾N201510066037
【發(fā)明人】田豐林, 陳戈, 韓勇, 劉帥
【申請人】中國海洋大學
【公開日】2015年6月24日
【申請日】2015年2月7日