1. 程式人生 > >科學計算可視化

科學計算可視化

圖像 註意 nod surf 有一種 lar 規則 累加 誤差

一. 緒論

  1. 現代科學研究主要方法:

(1) 理論(推導,完全歸納,演繹)

(2) 實驗(統計,歸納)

(3) 數值方法,模擬仿真

(4) 大數據,知識發現,數據挖掘

  1. 可視化定義
    可視化是一種方法。它將符號變為直觀的幾何形體,使研究者可以直接觀察他們感興趣的對象,它提供了一種觀察不可見事物的手段。
    數據可視化(Data Visualization ):運用計算機圖形學和圖像處理技術,將數據轉換為圖形或圖像在屏幕上顯示出來,並進行交互處理的理論、方法和技術。
    數據可視化的類型:

(1) 科學計算可視化

(2) 信息可視化

(3) 知識可視化
下面介紹三種數據可視化的特點,區別和聯系

  1. 科學計算可視化

(1) 特點:空間數據場的可視化

(2) 背景:大量科學計算獲取的具有空間關系的數據如何直觀顯示

(3) 概念:是運用計算機圖形學或者一般圖形學的原理和方法,將科學與工程計算等產生的大規模有空間結構的數據轉換為圖形、圖像,以直觀的形式表示出來。

(4) 方法:顯示的對象涉及標量、矢量及張量等不同類別的空間數據,研究的重點放在如何真實、快速地顯示二維/三維的數據場。

  1. 信息可視化

(1) 特點:非空間數據的可視化

(2) 背景:隨著社會信息化的推進和網絡應用的日益廣泛,信息源越來越龐大。除了需要對海量數據進行存儲、傳輸、檢索及分類等以外,更迫切需要了解數據之間的相互關系及發展趨勢。希望能夠對其進行更高層次的分析,以便更好地利用這些數據。

(3) 概念:使用計算機支持的、交互性的視覺表示法,對抽象數據進行表示,以增強認知

(4) 方法:顯示的對象主要是多維的標量數據(經濟、管理、Web數據),目前的研究重點在於設計和選擇什麽樣的顯示方式才能便於用戶了解龐大的多維數據及它們相互之間的關系

  1. 知識可視化

(1) 人類的知識

(2) 背景:信息可視化的目標在於從大量的抽象數據中發現一些新的見
解,或者簡單地使存儲的數據更容易被訪問;而知識可視化則是通
過提供更豐富的表達他們所知道內容的方式,以提高人們之間的知
識傳播和創新。

(3) 概念:在科學計算可視化、數據可視化、信息可視化基礎上發展起
來的新興研究領域,應用視覺表征手段,促進群體知識的傳播和創

新。一般來講,知識可視化領域研究的是視覺表征在提高兩個或兩
個以上人之間的知識傳播和創新中的作用。

(4) 方法:除了傳達事實信息之外,知識可視化的目標在於傳輸見解(insights)、經驗(experiences)、態度(attitudes)、價值觀(Values)、期望(expectations)、觀點(perspectives)、意見(opinions)和預測(predictions)等,並以這種方式幫助他人正確地重構、記憶和應用這些知識。
技術分享圖片

  1. 科學計算可視化的研究方向

(1) 沈浸式的ViSC

(2) 分布式的ViSC

(3) 交互式的ViSC

  1. 體數據的來源

(1) 測量,如醫學的計算機斷層掃描(CT),磁共振成象(MRI )。

(2) 計算,如計算流體力學(CFD), 有限元分析(FEA),這是當前體數據的主要來源之一.這是當前體數據的主要來

(3) 幾何實體的體素化(Voxelization) 。

  1. 科學計算可視化技術分類
    兩種標準:按照數據類型,按照數據之間的關系結構和分布
    按照數據類型分為三類:標量矢量和張量
    按照數據之間關系結構和分布:結構化數據和非結構化數據,結構化數據又分為四類

(1) 均勻網格結構化數據(Cartisian)

(2) 規則網格結構化數據(Regular)

(3) 矩形網格結構化數據(Rectangular)

(4) 不規則網格結構化數據
不規則結構化數據和非結構化數據還是不一樣的,需要註意區分:
不規則的結構化網格特點

(1) 內部點有相同數目的鄰居

(2) 在存儲時每個網格節點的坐標值需要保存,同時每個網格節點的連接點采用相同規模的數據結構存儲.在存儲時每個網格節點的坐標值需要保存,同時每個網格節點的連接點采用相同規模的數據結構存儲
非結構化網格特點

(1) 內部點鄰居不同

(2) 連接關系需要按照不同的節點分別處理

  1. 科學計算可視化流程:數據生成->數據處理->可視化映射->繪制->顯示
  2. 科學計算可視化是一種空間信息的可視化,其處理的對象包含三方面信息:

(1) n 維空間中的坐標;

(2) 與n 維空間中其他節點的連接關系;

(3) 數據場中的場值。
Talk is cheap,show you my code.
struct node{
Vector3 Position;
struct node *link;
Value value;} ;

  1. 科學計算可視化典型應用

(1) 數字化人體

(2) 礦產油藏

(3) 大氣及流體,天氣預報

(4) 虛擬風洞

(5) 有限元分析,天體物理,遙感,流體力學,化學,生命科學

  1. 科學計算可視化的研究方向

(1) 沈浸式的ViSC

(2) 分布式的ViSC

(3) 交互式的ViSC

  1. 體數據的來源

(1) 測量,如醫學的計算機斷層掃描(CT),磁共振成象(MRI )。

(2) 計算,如計算流體力學(CFD), 有限元分析(FEA),這是當前體數據的主要來源之一.這是當前體數據的主要來

(3) 幾何實體的體素化(Voxelization) 。

  1. 科學計算可視化技術分類
    兩種標準:按照數據類型,按照數據之間的關系結構和分布
    按照數據類型分為三類:標量矢量和張量
    按照數據之間關系結構和分布:結構化數據和非結構化數據,結構化數據又分為四類

(1) 均勻網格結構化數據(Cartisian)

(2) 規則網格結構化數據(Regular)

(3) 矩形網格結構化數據(Rectangular)

(4) 不規則網格結構化數據
不規則結構化數據和非結構化數據還是不一樣的,需要註意區分:
不規則的結構化網格特點

(1) 內部點有相同數目的鄰居

(2) 在存儲時每個網格節點的坐標值需要保存,同時每個網格節點的連接點采用相同規模的數據結構存儲.在存儲時每個網格節點的坐標值需要保存,同時每個網格節點的連接點采用相同規模的數據結構存儲
非結構化網格特點

(1) 內部點鄰居不同

(2) 連接關系需要按照不同的節點分別處理

  1. 科學計算可視化流程:數據生成->數據處理->可視化映射->繪制->顯示
  2. 科學計算可視化是一種空間信息的可視化,其處理的對象包含三方面信息:

(1) n 維空間中的坐標;

(2) 與n 維空間中其他節點的連接關系;

(3) 數據場中的場值。
Talk is cheap,show you my code.
struct node{
Vector3 Position;
struct node *link;
Value value;} ;

  1. 科學計算可視化典型應用

(1) 數字化人體

(2) 礦產油藏

(3) 大氣及流體,天氣預報

(4) 虛擬風洞

(5) 有限元分析,天體物理,遙感,流體力學,化學,生命科學

二. 三維規則標量數據場及基於面片提取的繪制算法

  1. 體元:一個二階魔方,8個頂點構成一個體元.
  2. 體素:坐標值+數據場值
  3. 三維規則標量標量場的存儲:
    三維數組Double RegularField[MaxX][MaxY][ MaxZ]
    規則數據場主要特點是各個網格點的坐標、連接關系可以自然推導,不需要顯式存儲
  4. 常見繪制方法

a) 基於等值面面片提取的方法 在物體空間的每個體元中提取等值面片,隨後按照計算機圖形學中繪制面片物體的方法進行繪制。其最大的特點是可以充分利用現有計算機對三維圖形的支持。(OpenGL 、顯卡加速等)

b) 直接體繪制方法 直接基於體數據進行繪制,其最大的特點是可以體現數據場中的整體數據分布,而且繪制效率高.

i. 從圖像空間出發的方法(像序)

ii. 從物體空間出發的方法(物序)

  1. 計算機圖形學中物體表示方法

a) 線框表示

b) 曲面表示

c) 點模型

d) 實體表示
基本幾何元素:點線面體

技術分享圖片

(6)計算機圖形學中基於三角形面片繪制需要的主要參數
三個點的坐標信息:用於空間變換,投影
三個點的法向量,或者整個三角形面片的法向量:用於光照計算
三個頂點的紋理,顏色:用於渲染繪制
(7)二維平面等值線求法,雙線性插值公式:f(x,y)=(k_1 x+b_1)(k_2 x+b_2)=a+bx+cy+dxy
四個變量,四個方程

  1. 三維空間標量場基於等值面方法

a) Cuberille

b) MarchingCubes

c) MarchingTetrahedral

  1. Marching Cubes算法基本流程

(1) 導入相鄰的Slice 的數據,形成體元

(2) 逐個處理數據場中的體元,提取出與等值面相交的體元;

(3) 采用插值方法計算出等值面與體元的交點;

(4) 將交點按照一定方式連接生成等值面。
將256 種情況歸約為15 種情況,以簡化處理

  1. Marching Cubes算法存在的問題及改進
    問題其實就分兩類:效率問題和效果問題(精確性,正確性)

(1) 等值面近似性問題:當數據場稀疏,等值面太大,造成誤差明顯.

(2) 二義性:二義性產生的原因是,共享的表面在不同體元中可以采取不同的連接方式.
解決方法:MT算法,用四面體求等值面.

(3) 密集數據場中,體元太小,每個三角面片太小,以至於不足以容下1個像素.
解決方法:Dividing Cube方法,直接將該體元中心作為一個像素進行投影,稱之為”表面點”.

(4) 對於每一個給定的等值面的值,需要遍歷體數據中的每一個體元,而許多體元與這個等值面並沒有交點,所以需要一種快速過濾方法.如八叉樹,層次包圍盒等數據結構.

(5) 細節保留問題:場數據在由計算機自動生成時,有些尖銳部分會變得模糊平滑.

(6) 大數據量面片繪制費時.這是一個效率問題
解決方案:層次化繪制,八叉樹.

  1. MT算法:解決二義性問題,不使用正方體求等值面,而是使用四面體
    步驟如下

(1) 正方體剖分成若幹個四面體(一般使用5劃分)

(2) 在四面體中求等值面得到若幹個三角面片

(3) 將三角面片投影到繪制平面上
三. 三維規則數據場直接體繪制

  1. 定義:直接體繪制算法是將離散分布的三維數據場,按照一定的規則不通過中間圖元直接轉換為圖形顯示設備幀緩存中的二維離散信號,即生成每個像素點顏色的R 、G 、B 值。
  2. 直接體繪制算法的特點

(1) 直接體繪制簡稱體繪制,最主要的特點是不生成中間圖元。

(2) 將離散分布的三維數據場(對原有實際數據場的采樣結果)轉換為二維信號,需要重新采樣(Re-sampling)

(3) 需要計算每個數據值(采樣點)對二維圖像的貢獻,同時需要將全部數據值對二維圖像的貢獻進行合成

(4) 體繪制的實質包括兩項內容: 重新采樣 、圖像合成

  1. 光照模型
    技術分享圖片

光照模型的作用:
技術分享圖片

常用光照模型:

(1) 源-衰減模型(Source-Attenuation)
為體數據場中的每一個體素分配一個源強度和一個衰減系數,每一個體素作為一個質點光源發出的光線在數據場中沿距離衰減後被投影到視平面上,形成結果圖像。

技術分享圖片

(2) 變密度發射模型(Varying Density Emitters)
質點光源模型,每個體元都可以發光.

(3) 材料分類及混合模型(Classification&Mixture)

  1. 直接體繪制算法分類
    軟件方法
    頻域:物序(以RayCasting為例),相序(以拋雪球為例)
    時域
    硬件方法
  2. 三維規則數據場直接體繪制-------RayCasting算法(光線投射算法)
    技術分享圖片

光線投射算法實現:
技術分享圖片

(1) 判斷一個點在多邊形內部(計算幾何知識,在光線與多邊形求交中遇到)

a) 叉積(只適用於凸多邊形):充要條件是,對於多邊形每對相鄰頂點做叉積,叉積符號相同.

b) 夾角之和360

c) 無窮遠處交點個數計數法

(2) Raycasting算法分類
按照合成方式:Pre DVRI,Post DVRI
按照采樣方式:等距,不等距

(3) RayCasting算法存在的問題
1) 圖像模糊問題:延遲渲染
以前,對於同種物質的各個點,它們毫無幹系,各自為戰.來一個點,就直接渲染這個點.
現在,對於同種物質的各個點,先把它們累加起來,再對累加和進行渲染.

技術分享圖片

2) 希望突出體繪制中的邊界面信息:增加梯度計算和光照計算,顯示表面效果
3) 算法效率,每條射線都需要求交,運算量大:利用射線相關性,減少運算量
4) 采樣問題,等距采樣太盲目,采樣間距不易控制,等距采樣默認間距之間只有一種物質.
解決方案:八叉樹,相當於變步長采樣.

(4) 數據場相關性

a) 數據場場值連續性

b) 數據場空間連續性

c) 成像平面相鄰像素連續性

(5) 體元分類

a) Voxel Cell,只含一種物質的體元

b) Blank Cell,空體元

c) Complex Cell,包含多種物質的體元

  1. 物序法

(1) 足跡表法FootPrint,又叫Splatting拋雪球法--------物序

(2) 物序法的特征
逐層、逐行、逐個地計算每一個數據點對屏幕像素的貢獻,將其加以合成,形成最後的圖像

技術分享圖片

(3) 物序法
? Splatting—— 體素
? V-buffer—— 體元
? Slice—— 紋理
? Shear-Warp—— 整體
? 體元相關性投影—— 體元

(4) 錯切變形Shear-Warp算法
算法的中心思想:將三維離散數據場變換到一個中間坐標系,在這個中間坐標系中,觀察方向與坐標系的一個軸平行,這樣將大大簡化從三維物體空間到二維圖像空間的投影過程。

(5) SBR(SurfaceBasedRendering,基於等值面)和DVR(DirectVolumeRendering,直接體繪制)
四. 不規則體繪制

技術分享圖片

  1. 不規則體數據繪制算法:RC,體元投射法
  2. 使用RC方法
    ? 插值運算形成規則數據場:最近鄰點法、三線性法、
    按距離反比加權法等
    ? 用規則數據場的光線投射方法對上面步驟形成的數據場進行繪制
  3. 體元投影

技術分享圖片

  1. 三維不規則數據場的主要特點:空間分布稀疏、網格的形狀不同、
    大小不一致。
    五. 矢量場繪制

科學計算可視化