王弘堃 曹 軼 肖 麗
(北京應用物理與計算數(shù)學研究所 北京 100094)
(whk@iapcm.ac.cn)
隨著超級計算機性能的不斷提升,使得數(shù)值模擬專家們可以在數(shù)千上萬CPU核上進行并行數(shù)值模擬,進而產(chǎn)生大規(guī)模時變數(shù)據(jù)集,1次數(shù)值模擬輸出的數(shù)據(jù)就可以達到TB甚至PB量級,給數(shù)值模擬結(jié)果的分析帶來巨大的挑戰(zhàn).
數(shù)值模擬結(jié)果的可視分析是科學數(shù)值模擬研究的重要輔助手段,如果能流暢交互進行則會更加有效,但交互性能卻受到數(shù)據(jù)尺寸、分辨率和可視化算法復雜性等諸多因素的影響.大規(guī)模3D數(shù)據(jù)集的可視化是非常耗時的過程,繪制1幅多圖耦合的圖像,即使使用數(shù)百核進行并行可視化,也需要數(shù)十秒甚至幾分鐘的時間,無法快速進行交互可視分析和展示.
通常可視化過程分3個步驟:
1) 選擇可視化方法,通常為多種方法的耦合,如網(wǎng)格、偽彩色和體繪制圖的組合顯示;
2) 各種參數(shù)的選擇,缺省的參數(shù)很少能充分反映數(shù)據(jù)內(nèi)在特征,對于體繪制方法,轉(zhuǎn)換函數(shù)的定義尤為重要,好的轉(zhuǎn)換函數(shù)定義可以很好地反映數(shù)據(jù)特征;
3) 交互地觀察與分析,從不同的角度觀察可視化結(jié)果圖像,對于3D數(shù)據(jù)的分析是至關(guān)重要的.
前2個步驟需要反復地調(diào)整才能反映數(shù)據(jù)中隱藏的特征或現(xiàn)象,一旦確定就可以固化為針對該應用的可視分析模式,并反復使用.經(jīng)過前2個步驟后,物理特征或現(xiàn)象已經(jīng)視覺呈現(xiàn),接下來就是反復觀察發(fā)現(xiàn)知識與規(guī)律,有價值的結(jié)果以特定角度的圖像或關(guān)鍵幀動畫形式保存,用于以后的匯報、交流與回顧.但以圖片或關(guān)鍵幀動畫這樣的方式進行展示,具有主觀意志,觀察的角度路徑都是事先預訂好的,不能夠全面展示數(shù)據(jù).
盡管近年來發(fā)展了很多加速的技術(shù)手段,但都是通過犧牲精度或完整性等技術(shù)獲得交互性,由于缺乏高頻細節(jié)等諸多缺陷,不利于模擬結(jié)果的準確分析.基于圖像的實時繪制技術(shù)提供了一種提高交互性的解決思路,該項技術(shù)已經(jīng)提出了很多年,主要應用于虛擬現(xiàn)實應用領(lǐng)域,其原理是:事先采集多個角度的圖像,實時渲染時通過對預先生成的參考圖像的插值繪制結(jié)果圖像,基于圖像繪制方法的繪制時間趨于恒定且快速,可以滿足實時交互的要求.
為此,我們提出基于圖像的實時可視化方法,在以大規(guī)模數(shù)據(jù)集包圍盒中心為球心、包含全部數(shù)據(jù)的3D空間球面上近似均勻布點,并沿球心方向繪制可視化結(jié)果圖像.在可視分析與展示時,基于這些預先生成的可視化圖像,實時交互改變視點方向,以近似于任意角度觀察分析數(shù)值模擬結(jié)果.這對于我們實時交互分析數(shù)據(jù)、小組或?qū)<視\的可視化再現(xiàn)以及科研成果展示都有重要意義,特別是我們可以在普通的計算機和高分辨率設(shè)備上實時分析和展示數(shù)值模擬結(jié)果.
大規(guī)模數(shù)值模擬結(jié)果如此巨大,必須借助于可視化工具進行交互的可視分析.目前可視化方法基本成熟,常用的方法包括等值面[1]和體繪制[2]等,盡管這些方法提出已經(jīng)20年了,但仍然是目前最常使用的可視化方法.隨著計算規(guī)模的不斷增加,這些傳統(tǒng)的方法都遭遇了交互性能瓶頸,特別是計算密集的體繪制方法.于是產(chǎn)生了基于GPU的加速技術(shù)[3],但由于量化降低了精度,一批改進質(zhì)量的算法[4]被提出來,但由于受顯卡存儲的限制,精度一直是GPU加速體繪制的短板.
數(shù)據(jù)約減技術(shù)也用來提高交互性能,包括空間域和時間域子采樣、標量和向量量化、基于變換的壓縮和特征抽取等.數(shù)據(jù)約減可以在模擬結(jié)果輸出時完成,這為隨后的數(shù)據(jù)傳輸、存儲和處理降低了資源需求.子采樣和量化對精度的損失較大,基于小波變換的壓縮技術(shù)[5-6]犧牲高頻細節(jié)保持低頻特征,更為有效.而特征抽取技術(shù),結(jié)果通常要比原始數(shù)據(jù)小很多,但需要額外的領(lǐng)域知識.
上述提高交互性能的方法,都是通過降低精度或完整性等方式獲得交互性,并且仍然需要使用3D算法來可視化這些數(shù)據(jù),計算性能受拓撲結(jié)構(gòu)和復雜性限制,難以在交互性和準確性之間達到平衡.近年來,基于圖像的繪制方法提供了另一種超大數(shù)據(jù)集交互可視化的解決方案,其思想來源于虛擬現(xiàn)實領(lǐng)域中的虛擬視點繪制技術(shù).該技術(shù)大致可以分為基于模型的繪制(MBR)和基于圖像的繪制(IBR)兩種.MBR技術(shù)所需的計算量和場景復雜度息息相關(guān),因此不適合處理場景復雜度較高的自然景象;而基于圖像的繪制技術(shù)則避免了復雜的3D建模過程,直接根據(jù)參考視點圖像生成虛擬視點圖像,其繪制的速度較快且與場景的復雜度無關(guān),生成的圖像真實感較強,因此提出了多種IBR技術(shù)[7-8]并得到了廣泛應用.超大規(guī)模數(shù)據(jù)集可視化類似于MBR方法,復雜的網(wǎng)格和3D可視化算法帶來大量密集計算,為此一系列基于圖像的體數(shù)據(jù)繪制技術(shù)[9-13]應運而生,這些方法采用一種緊湊的、便于傳輸和存儲的表示格式,可以將傳統(tǒng)的3D數(shù)據(jù)探查操作延遲作用在更合適的中間表示上,以提供交互的探究能力.這些操作不需要訪問原始的3D數(shù)據(jù)、不需要重新繪制和高端的圖形硬件,基于事先生成的圖像集,支持3D數(shù)據(jù)的有效探查,包括旋轉(zhuǎn)、放大和平移空間域探查、修改顏色和不透明度映射的轉(zhuǎn)換函數(shù)域探查等能力.
基于圖像的繪制方法,其中間表示數(shù)據(jù)遠小于原始的3D數(shù)據(jù)集,也屬于數(shù)據(jù)約減技術(shù)的范疇,不可避免要引入誤差.但因其提供了與數(shù)據(jù)復雜度無關(guān)的交互性能,作為一種預覽技術(shù)是非常合適的,可以通過這種快速的交互方法選擇合適的繪制參數(shù)和視點.
我們的方法吸收了基于圖像繪制技術(shù)快速、資源占用少的優(yōu)點,基于領(lǐng)域或數(shù)值模擬程序的可視分析模式,通過并行可視化直接從3D時變數(shù)據(jù)集創(chuàng)建精確繪制的密集圖像集,進而可以在普通設(shè)備上基于事先創(chuàng)建的圖像集進行精確的可視分析和展示.
圖像集是實現(xiàn)交互展示的基礎(chǔ),下面詳細介紹圖像集的生成和管理方法.
通常虛擬視點繪制技術(shù)的參考圖像獲取不太方便,需要謹慎選取參考圖像的視點,許多技術(shù)研究都專注于如何減少參考圖像數(shù)目以及如何提高合成視點圖像的精度減少失真.與此相反,可視化圖像集的獲取相對要容易很多,我們基于JaVis通用可視化平臺[14]可以方便地自動生成圖像集.與基于圖像的實景瀏覽系統(tǒng)要求不同,基于參考圖像插值生成新圖像的方法容易引入誤差,所以基于參考圖像合成任意視點圖像的方法不必要也不適用于可視化結(jié)果繪制.
為了更全面顯示可視化結(jié)果圖像,將觀察視點近似均勻布點在包圍3D數(shù)據(jù)集的球面上,亦即在經(jīng)緯度網(wǎng)格上均勻布點,相鄰經(jīng)度線或緯度線的張角為k度.采用此布點方案便于實現(xiàn),視點與圖像的映射關(guān)系簡單,而且也符合我們的日常習慣.
假設(shè)3D原始數(shù)據(jù)集包圍盒的中心坐標為(x0,y0,z0),布點半徑為R,每個觀察點對應一對參數(shù)(α,β),可以理解為經(jīng)緯度坐標,則對應的視點位置坐標(x,y,z)的計算公式為
(1)
其中,0≤α≤35,-8≤β≤8,k=10°.
通常我們選取k=10°,這樣經(jīng)度方向36個點,從0°~350°,緯度方向19個點,去除上下2個極點共17個點,總點數(shù)為36×17=612,再補齊2個極點共計614個視點.為了更精細地展示可視化的結(jié)果,可以選取更小的k值,后面的分析表明所需增加的存儲也是有限的.
目前許多成熟的可視化方法用于數(shù)值模擬結(jié)果的可視化顯示,也提出了一系列數(shù)據(jù)抽取、變換和挖掘方法輔助對數(shù)值模擬結(jié)果的分析處理.其中可視化參數(shù)的設(shè)置至關(guān)重要,合適的參數(shù)設(shè)置可以很好地展示數(shù)據(jù)的內(nèi)在特征.比如我們使用體繪制方法可視化3D人體核磁共振數(shù)據(jù)時,轉(zhuǎn)換函數(shù)的設(shè)置非常重要,顏色和不透明度的適當選擇,可以很好地展現(xiàn)皮膚、骨骼和神經(jīng)等組織.
實際上,可視化參數(shù)的設(shè)置具有領(lǐng)域特性,比如人體不同組織器官的密度都具有相似的區(qū)間范圍,在其他領(lǐng)域的數(shù)值模擬結(jié)果中也存在類似的特點.對于一個領(lǐng)域?qū)S脭?shù)值模擬程序,用于可視分析的方法、流程和參數(shù)有基本定式,我們將這種定式固化為可視分析模式并反復使用,可視分析模式的使用可以簡化可視分析的操作過程,提高數(shù)值模擬的分析效率.
在我們的方法中,并沒有提供參數(shù)域的交互手段,而是基于領(lǐng)域的可視分析模式生成圖像集.這些模式是通過與數(shù)值模擬專家共同討論反復斟酌形成的分析定式,其中確定了使用什么變量、采用什么可視化方法以及使用什么樣的可視化參數(shù)等,形成了耦合若干可視化方法的可視化繪制模式.基于這些模式生成的可視化結(jié)果圖像可以較全面展示模擬結(jié)果的內(nèi)在特性,提供后續(xù)空間域的交互展示與分析,并在后續(xù)的數(shù)值模擬結(jié)果分析時反復使用.
圖1所示為2種典型的可視分析模式圖.其中圖1(a)為內(nèi)爆阻滯階段的流體力學不穩(wěn)定性機理數(shù)值模擬可視化結(jié)果圖,其中耦合了AMR網(wǎng)格、偽彩色和等值抽取可視化方法,并進行了切割篩選操作.其中物質(zhì)密度用灰度圖表示,灰度的深淺代表不同的物質(zhì)密度值,灰色波紋區(qū)域表現(xiàn)的是流體不穩(wěn)定性中特有的物質(zhì)混合現(xiàn)象;溫度采用彩色顏色圖表示,藍色代表低溫區(qū)域,紅色代表高溫區(qū)域;在變量空間上采用等值抽取技術(shù),獲取感興趣的數(shù)據(jù)變化特征,充分刻畫在不穩(wěn)定過程中產(chǎn)生的釘和泡.
圖1(b)為飛機整機瞬態(tài)平面電磁波照射下的電磁散射特性數(shù)值模擬可視化結(jié)果圖,其中耦合了飛機表面網(wǎng)格和體繪制可視化方法.表面網(wǎng)格展示了飛機的精細結(jié)構(gòu),體繪制展示了飛機在復雜電磁環(huán)境下飛機的電磁散射特性和電磁環(huán)境效應.
Fig. 1 Typical visual analysis patterns圖1 典型可視分析模式圖
我們實現(xiàn)的軟件系統(tǒng)是與JaVis可視化平臺配套的大規(guī)模數(shù)據(jù)集可視分析與展示工具,在JaVis平臺中執(zhí)行Python腳本,自動創(chuàng)建圖像集.
在腳本中,選擇10°作為布點單位,為M個時間步的時變數(shù)據(jù)集生成圖像集,圖像的分辨率可根據(jù)需要指定.圖像文件名view_xxx和視點(α,β)間建立如下的映射關(guān)系:
(2)
按上述映射關(guān)系生成的圖像集,文件名則從view_0~view_max,其中max是圖像集長度減1.
圖2是針對1次數(shù)值模擬的典型組織方式,其中原始的時變數(shù)據(jù)集包含N個時間步的數(shù)據(jù).生成的圖像集包含K種可視分析模式,每種模式包含614個視點.
Fig. 2 Structure of image sets圖2 圖像集組織結(jié)構(gòu)
基于按上述結(jié)構(gòu)組織的圖像集,就可以進行交互的分析與展示,第3節(jié)將詳細介紹如何進行交互分析和展示.
基于按照圖2的組織方式創(chuàng)建的圖像集,就可以使用我們的系統(tǒng)交互地分析數(shù)值模擬結(jié)果數(shù)據(jù).用戶指定可視分析模式目錄,就可以顯示該分析模式的結(jié)果圖像,進行如下的交互分析過程.
在示例的腳本中,我們將生成圖像的分辨率設(shè)置為1 000×1 000,為了更清晰地顯示可視化的細節(jié),我們可以設(shè)置更高的分辨率,只是更高的圖像分辨率,其創(chuàng)建圖像集的時間也會成倍增加.
我們可以對當前的可視化圖像進行縮放,圖像整體放大后更多的細節(jié)將得以顯示.當圖像的尺寸超過窗口的尺寸時會出現(xiàn)滾動條,拖動滾動條可以觀察不同區(qū)域的細節(jié).而通??梢暬浖诜糯髸r就只能看見局部,觀察其他區(qū)域時只能基于重繪制實現(xiàn),不僅交互時間無法保證,也不能保證觀察視點的一致性.
用戶可以交互地進行旋轉(zhuǎn)觀察,通過鼠標在窗口中按下的位置或者鍵盤的方向鍵控制旋轉(zhuǎn)的方向,每按下1次,旋轉(zhuǎn)1個角度單位,亦即10°.實際上,我們就是改變了視點參數(shù)(α,β),依據(jù)式(2)指定的映射關(guān)系快速顯示對應圖像.
在經(jīng)度方向,旋轉(zhuǎn)到上下極點后,就不能繼續(xù)沿此方向旋轉(zhuǎn),原因是在生成圖像的時候我們需要指定視點的向上向量,也就是指定了相機的拍照方向,當越過極點后,我們得到的圖像將是反轉(zhuǎn)的圖像,會造成視覺不連續(xù).在緯度方向則可以沿左或右的方向任意旋轉(zhuǎn).
提供視點記憶功能,可以人工選擇若干最佳視點記錄下來,使用者可以僅在最佳視點間切換,以便更有效地展示分析結(jié)果.
旋轉(zhuǎn)操作和縮放操作可以疊加,放大后旋轉(zhuǎn)將保持放大比率不變.
通常我們在交流或匯報工作的時候,由于數(shù)據(jù)量太大無法現(xiàn)場進行交互可視化,只能使用若干固定角度的2D圖片展示數(shù)值模擬的分析結(jié)果,這很難充分展示3D的空間結(jié)構(gòu),而使用本工具可以方便地交互展示大規(guī)模復雜模擬的分析結(jié)果.
同樣,縮放和旋轉(zhuǎn)操作也可以疊加進行,在動畫的過程中隨時縮放和改變觀察角度.
通常,我們在展示完整的數(shù)值模擬結(jié)果時,都是繪制關(guān)鍵幀動畫,觀察的角度都是事先確定的,持續(xù)顯示的時間也是固定的,因此帶有主觀傾向,專家們?nèi)羝谕袚Q到其他角度觀察時由于并未創(chuàng)建相應角度的圖像而無法辦到.基于本系統(tǒng)的動畫,則可以隨時切換觀察角度觀察動態(tài)過程,可以充分展示數(shù)值模擬的全過程.
如圖2中的電磁散射特性模擬,1次數(shù)值模擬大約模擬上萬步,通常每隔數(shù)百步會保存1次,因此幾十個時間步的時變數(shù)據(jù)集的存儲總量需要數(shù)百TB,其中每個時刻的原始數(shù)據(jù)就包含300億結(jié)構(gòu)網(wǎng)格單元,不僅耗費存儲,而且可視分析模式的1幀畫面并行處理也需要數(shù)秒到數(shù)十秒的時間.如表1所示為天河1A上的測試結(jié)果,1 500個核上的繪制時間也需要5 s,所以基于大規(guī)模原始數(shù)據(jù)的交互可視化是無法實現(xiàn)的.
Table 1 Results of Parallel Scalable Tests on Electromagnetic Scattering Simulation
在我們的方法中,每幅圖片若采用4 096×4 096的分辨率,采用png格式保存圖像,每張圖像約需要500 KB存儲(png格式最好質(zhì)量每幅450 KB,jpeg格式最好質(zhì)量每幅1 070 KB,bmp格式每幅49 MB),1個時刻的圖像集共計約300 MB,如果考慮1次數(shù)值模擬包含50個時間步、4種可視分析模式,則整體需要60 GB的存儲空間,與原始數(shù)據(jù)集相比減少數(shù)個量級.
在圖像生成時推薦采用2 000×2 000或4 000×4 000的圖像分辨率生成圖像集,這樣生成的圖像細節(jié)更豐富,在分析或展示圖像時既能觀察整體,也可以放大圖像觀察局部細節(jié),且縮放圖像的時候不會產(chǎn)生明顯的走樣現(xiàn)象.
采用基于圖像的繪制方法,繪制時間與原始數(shù)據(jù)的復雜度無關(guān),只與圖像的分辨率有關(guān).實測表明,在普通的計算機上可以達到每秒數(shù)幀的交互效率,非常適合于大規(guī)模數(shù)值模擬結(jié)果的交互分析與展示.
我們的方法采用均勻密集的方式布點,并沒有考慮到數(shù)據(jù)的特征,難免會錯過最佳視點.我們將在后續(xù)的工作中基于領(lǐng)域知識研究特征提取技術(shù),基于特征自適應分布視點,以便能更好地分析與展示數(shù)值模擬結(jié)果.
對于每個數(shù)值模擬程序,使用60 GB的存儲空間用于結(jié)果展示仍然覺得過大.以可視分析的角度提供600多視點是必要的,但對于交流與展示需求而言,通常僅需若干最佳視點就可以滿足要求.因此,我們提供了一個簡化版本,每個時間步僅保存若干特殊視點的圖像,視點切換僅在這些視點間循環(huán),如果僅保存6~7個視點,圖像集的存儲空間就可以下降到GB以下,非常適合交流使用.除了視點數(shù)目減少外,其他功能皆保持不變.而若干最佳視點可以在完整版的可視分析過程中人工交互指定,基于指定的最佳視點構(gòu)造簡化圖像集.
我們針對電磁散射和流體不穩(wěn)定性等領(lǐng)域的常用數(shù)值模擬程序,已經(jīng)總結(jié)了若干可視分析模式,可供生成圖像集時使用.對于新的數(shù)值模擬程序,還需要與專家共同凝練模式.現(xiàn)在積累的可視分析模式還局限于特定的數(shù)值模擬程序,需要在這些模式的基礎(chǔ)上加以凝練,形成領(lǐng)域可視分析模式,以支撐在線可視分析以及基于圖像可視分析的圖像集生成.
最佳視點的選擇目前還需要專家利用經(jīng)驗交互指定.目前,也有一些方法用于轉(zhuǎn)換函數(shù)或視點的自動選擇,比如使用信息熵的方法來選擇最佳視點[15-18]等.在后續(xù)的工作中我們將利用信息熵等方法,研究自動視點選取和可視化參數(shù)選擇技術(shù).
為了更好地展示3D可視分析的結(jié)果,也可以考慮提供立體顯示功能,JaVis可視化平臺已經(jīng)提供了立體可視化結(jié)果輸出功能,為立體顯示奠定了基礎(chǔ).
我們的方法本質(zhì)上是基于視點的切換實現(xiàn)實時繪制,由于圖像集是有限集,旋轉(zhuǎn)的角度是不連續(xù)的,瀏覽過程中會有跳躍現(xiàn)象.我們考察了文獻[9-13]中所描述的,利用相鄰圖像生成當前視點圖像的插值方法,其中都進行了不同程度的量化處理,不可避免會引入誤差,這可能會引入偽特征進而影響對模擬結(jié)果的分析,為此我們沒有采用插值方法,繪制的結(jié)果圖像精確度完全取決于圖像生成系統(tǒng)的繪制精度,可以通過減小生成圖像集的旋轉(zhuǎn)單位增加旋轉(zhuǎn)的連續(xù)性,而存儲成本的增加則在可控范圍之內(nèi).
本文提出了一種基于圖像集實現(xiàn)大規(guī)模數(shù)值模擬結(jié)果交互可視化的方法,并開發(fā)了相應的軟件系統(tǒng),基于該系統(tǒng)可以實時交互地縮放和從不同角度觀察分析時變數(shù)據(jù)集的可視化結(jié)果.基于我們的JaVis可視化平臺,可以方便地自動生成圖像集,圖像集的存儲遠小于原始的時變數(shù)據(jù)集.本系統(tǒng)對大規(guī)模數(shù)值模擬結(jié)果的分析、匯報和展示提供了有效支撐.