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