vtk是乙個基於物件導向的開源三維繪圖軟體包,和其它的的三維繪圖引擎如osg、ogre不同之處在於,vtk視覺化物件主要是各種資料,更加注重對資料分析處理後的視覺化,視覺化的內容是人們無法直接感受到的東西,如地質構造、地層分布、礦床分布、三維空間應力場的狀態變化等等,而osg、ogre是基於場景的視覺化,更強調視覺感官的感受,所以osg主要應用於虛擬實境領域,而vtk主要應用於科學計算視覺化領域,本教程主要介紹vtk的視覺化應用。
vtk的視覺化設計是基於管線流的設計模式,將要處理的資料作為流動介質在管線中流動,不同的階段對資料有不同的處理方式,vtk的視覺化管線主要由圖形模型和視覺化模型組成,如下圖所示:
視覺化模型主要對資料進行處理,生成可被繪製的幾何體,而圖形模型主要對生成的幾何體進行繪製,在vtk的視覺化管線中所包含的物件一般包括:源物件、過濾器物件(可選)、對映器物件、props物件、繪製器物件、繪製視窗,其中源物件、過濾器物件(可選)、對映器物件、繪製器物件、繪製視窗為處理物件,props物件為資料物件,對映器物件是視覺化模型和圖形模型的介面。
有了視覺化管線,vtk的視覺化過程就可以用資料在視覺化管線流動的過程來描述(資料在管線中流動過程中,被管線不同的物件處理,最終以圖形的方式表現資料資訊),vtk的視覺化管線具有如下特點:
1、變換
資料從原始的形式變換成圖元的形式,最終以圖形的形式顯示。
2、表現
用vtk內部定義的資料結構描述資料,形成資料集,用圖形的方式表現資料。
3、是基於物件導向的
用物件導向的觀點描述視覺化管線,表現是資料物件,變換是處理物件。
下面我們對vtk視覺化管線的各個物件分別介紹,在視覺化管線中,按對資料處理方式的不同,分為資料物件和處理物件,其中資料物件主要作用是表現資料資訊,並對表現的資訊進行維護(建立、訪問、刪除),處理物件主要是對輸入的資料進行處理後生成輸出新的資料,處理物件主要包括:
1、源物件
資料生成的源頭,資料**主要包括從磁碟讀取資料檔案,如vtk所支援的各種格式檔案生成資料來源物件,這種源物件被稱為讀源物件,或者利用數學方法生成源物件,如利用多個四邊形構建乙個圓柱體,這種物件被稱為程式源物件。
2、過濾器物件
對源物件進行處理,生成新的資料集輸出。
3、對映器物件
對映器物件主要作用是將視覺化模型生成的資料轉換到圖形模型進行繪製,或者以磁碟檔案的形式進行輸出。
以上對vtk視覺化管線做了乙個簡單的介紹,下面通過乙個示例程式來說明資料是如何在視覺化管線中流動的。
VTK教程之七 視覺化基礎演算法 概述
演算法是資料視覺化的核心,依據資料集結構和型別的變換對演算法進行分類,分為結構變換和型別變換,結構變換是指資料集幾何結構和拓撲結構的變換,型別變換是指資料集型別的變換。根據對資料集幾何結構 拓撲結構和屬性的影響可將結構變換分為四類 1 幾何變換只改變幾何體本身,不改變幾何體的拓撲結構。幾何變換只改變...
VTK學習筆記 視覺化模型
視覺化模型 圖形模型的主要作用是用圖形描述幾何體構成的場景,視覺化流水線的主要作用是把幾何資料 如立方體的頂點座標 轉換成圖形資料和負責構建幾何體,vtk 使用資料流的方式把幾何體資料轉換成圖形資料,主要有兩個基本類和資料轉換相關,它們是vtkdataobject類和vtkprocessobject...
視覺化 資料視覺化三節課之一 視覺化的意義
推測未來將要發生什麼的最好方式,就是記住過去曾經發生了什麼。喬治 薩維爾 金錢永不眠,屠夫問候各位早安。近期因為工作需要,屠夫梳理了自己在投資和工作實踐中對 資料視覺化 的經驗和思考。我將用三節課講述 資料視覺化 的話題,希望給你一些啟發。有句話叫 一圖勝千言 對於看似複雜難懂的資料而言,尤其如是。...