兩種方式均由isosurface模塊來實現(xiàn),不同之處在于體視化要使用volume render模塊進(jìn)行邊緣的虛化,下面重點進(jìn)行介紹。
體視化只能處理數(shù)據(jù)為均勻網(wǎng)格,數(shù)據(jù)類型為字節(jié)型(byte)或短整型(short int)。首先要將云量的數(shù)據(jù)類型由浮點型(float)轉(zhuǎn)換成字節(jié)型,定義比例因子。云量體視化開發(fā)中使用的主要模塊說明如下:
data_math模塊用于進(jìn)行數(shù)據(jù)類型的轉(zhuǎn)換,與Dvreadfield相連,data_math模塊根據(jù)讀入的云量數(shù)據(jù)計算讀入數(shù)據(jù)最小值(min)和讀入數(shù)據(jù)最大值(max);按照計算公式255/(max-min)計算比例因子(scale),再按照計算出的比例因子將讀入的云量數(shù)據(jù)類型轉(zhuǎn)換為字節(jié)型,進(jìn)行云量體視化顯示。
volume_render模塊可以直接展示三維體數(shù)據(jù),可以使用BTF(硬件方式)或者光線跟蹤(軟件方式)的體視化模式。當(dāng)體視化的方式被激活,它可以支持體積和幾何學(xué)的混合顯示。這個模塊通過它相對應(yīng)的面板,提供一個非常便于使用的操作界面。該控制面板包含圖形顯示工具箱界面,體模式和數(shù)據(jù)圖的算法成分。這些控制是體視化模塊中最普通的使用特征,通過它們可以輕松的對該模塊進(jìn)行控制。本課題采用BTF方式,精度差一些,但是顯示速度比使用軟件方式快。
我們使用volume_render模塊來將轉(zhuǎn)換后的體數(shù)據(jù)進(jìn)行體視化顯示。體視化模塊用三維紋理映射合成體數(shù)據(jù)中的斷層面,以便幾何顯示器進(jìn)行顯示,下圖為體視化顯示。
幾何顯示器模塊(Uviewer3D模塊)定義了一個圖形應(yīng)用顯示組件的所有必要成分。它是一個高級的應(yīng)用程序?qū)ο螅渲邪嗽S多其他較低級別的對象。
幾何顯示器模塊含有一個默認(rèn)的圖形窗口和用戶界面編輯器。通過它使用者能夠控制相關(guān)對象的顯示。一個圖形的處理僅僅對應(yīng)一個單一的幾何顯示器模塊。但是我們可以使用顯示編輯面板來增加額外的圖形窗口,從而通過多個顯示圖形窗口來觀察被顯示的對象。幾何顯示器模塊包含“屏幕”(Scene),“屏幕選擇器”(Scene Selector),“屏幕編輯器”(Scene Editor)。
“屏幕”定義一個最高層次的數(shù)據(jù)對象(Top),其下可以包含許多子對象。Top對象屬性的任何改動都可能傳遞給其下面的子對象,從而可對整個對象層次進(jìn)行統(tǒng)一處理。
在“屏幕選擇器”中,我們可以選擇當(dāng)前屏幕并把該屏幕的顯示圖像進(jìn)行編輯處理。“屏幕編輯器”定義了一些相關(guān)工具欄,允許用鼠標(biāo)對顯示圖像進(jìn)行交互處理,例如重新設(shè)置圖像的屬性,使圖像規(guī)一化等等。
“屏幕編輯器”提供了一整套編輯面板,比如光線編輯、照相機(jī)編輯、顏色映射編輯等等,實現(xiàn)對顯示圖像的后期處理,以達(dá)到滿意的效果。
(2)風(fēng)場數(shù)據(jù)可視化過程