VTK草稿2

看完了網(wǎng)上幾篇入門的介紹钧嘶,我開始閱讀官方提供的標(biāo)準(zhǔn)教程躁倒。
VTK這個(gè)組織很有意思幔亥,軟件是開源的耻讽,社區(qū)也有,但是教程居然是要錢的……在vtk官網(wǎng)上有賣兩本書帕棉,一本是<VTK Textbook>针肥,主要是介紹VTK的設(shè)計(jì)思想,VTK這個(gè)工具本身就是這本書的附帶產(chǎn)物香伴;另一本是<VTK User's Guide>慰枕,看名稱就知道是介紹如何使用,所以我決定從這本書入手即纲。

這篇文章記錄了我在閱讀這本書前三章時(shí)候的重點(diǎn)內(nèi)容具帮。

Chapter 1 Welcome & 2 Installation

  • VTK的使用要點(diǎn)在于熟悉VTK提供的一系列的object,和這些object的組合方式低斋。
  • 書上提供的內(nèi)容只覆蓋了一部分的類蜂厅,完整的reference可以在官網(wǎng)找到,是Doxygen生成的Manual膊畴。

Chapter 3 System Overview

  • VTK系統(tǒng)是由兩個(gè)子系統(tǒng)組成的掘猿,核心是C++的類庫,外圍有Tcl唇跨、Java稠通、Python的語言解釋層。這樣做的目的是核心高效买猖,外圍易于開發(fā)和擴(kuò)展改橘。當(dāng)然也可以完全用C++開發(fā)。


    VTK系統(tǒng)構(gòu)架
  • 兩個(gè)object model構(gòu)成了VTK玉控,這兩個(gè)部分我在上一篇文章中也做了介紹

    • The Graphics Model -- 由圖形數(shù)據(jù)到圖像顯示 Geometry -> Image
    • The Visualization Model -- 由數(shù)字?jǐn)?shù)據(jù)到圖形數(shù)據(jù) Data -> Geometry

Graphics Model

  • VTK的Graphics Model主要由以下一些object組成:
  • vtkActor, vtkActor2D, vtkVolume
  • vtkLight
  • vtkCamera
  • vtkProperty, vtkProperty2D
  • vtkMapper, vtkMapper2D
  • vtkTransform
  • vtkLookupTable, vtkColorTransferFunction
  • vtkRenderer
  • vtkRenderWindow
  • vtkRenderWindowInteractor
  • Props 代表了我們在場景中看到的物體飞主。

    • 3D: vtkProp3D -- vtkActor + vtkVolume
    • 2D: vtkActor2D
  • Props并不直接代表圖形數(shù)據(jù),實(shí)際上他們是依賴于Mapper奸远,Mapper才是圖形數(shù)據(jù)的代表既棺。

  • Props也依賴于property object, 屬性對象的控制著Props的外觀。

  • Actor 和 Volume有內(nèi)在的transformation object(vtkTransform)懒叛。這個(gè)類封裝了一個(gè)4*4的變換矩陣(transformation matrix)丸冕,控制Prop的postion, orientation和 scale。

  • 光照(vtkLight)控制著場景的光照效果薛窥,只有在3D中有效胖烛。

  • 攝像機(jī)(vtkCamera)控制著3D的Prop怎樣在平面上顯示眼姐,也只在3D中有效。

  • vtkMapper是連接visulization popeline 和 graphics pipeline的“介質(zhì)”佩番。

  • vtkRenderer众旗、vtkRenderWindow上一章已經(jīng)介紹過,這些是最終顯示在屏幕上的內(nèi)容趟畏。


    Geometry --> Image
  • vtkRenderWindowInteractor是用戶和顯示界面交互的工具贡歧,用戶可以用鼠標(biāo)、鍵盤控制顯示赋秀。

  • 上述的object都有subclasses來細(xì)致描述object的行為利朵。

Visualization Model

  • VTK使用數(shù)據(jù)流的方式來將數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換成圖形數(shù)據(jù)。這其中涉及到兩個(gè)基本的類:

    • vtkDataObject - a generic "bolb" of data
    • vtkProcessObject
  • 擁有統(tǒng)一結(jié)構(gòu)的數(shù)據(jù)被稱為dataset(vtkDataSet)猎莲,VTK支持的dataset有如下幾種:


    dataset supported by VTK
  • Data Object 由兩部分構(gòu)成:

    • geometric and topological structure(points and cells) as illustrated by the figure 即圖形的幾何構(gòu)成
    • attribute data associated with the points and cells 即“點(diǎn)”和“點(diǎn)之間的連接”的屬性數(shù)據(jù)
data attributes associated with points and cells
  • Process Object绍弟,也被稱為"filter",操作data object來產(chǎn)生新的data object著洼,完成了系統(tǒng)中的算法處理樟遣。
Visualization Pipeline
  • Visulization pipeline的構(gòu)建涉及到以下幾個(gè)要點(diǎn):
    • pipeline是由類似于以下的語句構(gòu)成:
      aFilter -> SetInput( anotherFilter -> GetOutput() );

VTK中的方法名字是大駝峰命名,即第一個(gè)單詞的首字母是大寫的……
- VTK使用了“懶惰”的計(jì)算流程身笤,即只有當(dāng)數(shù)據(jù)被需要時(shí)才計(jì)算豹悬,如果數(shù)據(jù)沒有更新則不重復(fù)計(jì)算。
- process object 和 data object 的拼接都需要compatible液荸,這個(gè)依靠編程語言的type check輔助屿衅。
- 由于VTK處理的dataset通常十分巨大,我們必須選擇是否緩存(cache)或者保留(retain)pipeline執(zhí)行過程中產(chǎn)生的數(shù)據(jù)莹弊。

Pipeline excution

其他一些小注意點(diǎn)

  • Graphics pipeline中也有process,不過針對的是image data涡尘。即針對圖形化數(shù)據(jù)的處理忍弛,而不是原始的數(shù)字信息。
  • Graphics pipeline中的process幾乎都是多線程的考抄,并且可以自動把數(shù)據(jù)切割成片來處理细疚,以確保內(nèi)存足夠使用。
  • 每個(gè)VTK的類(subclass of vtkObject)都有一個(gè)AddObserver()的方法來設(shè)置回調(diào)(callback)川梅。
  • VTK的程序編譯流程一般是cmake -> make疯兼。cmake是用來產(chǎn)生Makefile的,里面包含了VTK的include path, link lines 和 dependence贫途。cmake依賴的是名為CMakeList.txt的文件吧彪。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市丢早,隨后出現(xiàn)的幾起案子姨裸,更是在濱河造成了極大的恐慌秧倾,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件傀缩,死亡現(xiàn)場離奇詭異那先,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)赡艰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進(jìn)店門售淡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人慷垮,你說我怎么就攤上這事揖闸。” “怎么了换帜?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵楔壤,是天一觀的道長。 經(jīng)常有香客問我惯驼,道長蹲嚣,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任祟牲,我火速辦了婚禮隙畜,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘说贝。我一直安慰自己议惰,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布乡恕。 她就那樣靜靜地躺著言询,像睡著了一般。 火紅的嫁衣襯著肌膚如雪傲宜。 梳的紋絲不亂的頭發(fā)上运杭,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天,我揣著相機(jī)與錄音函卒,去河邊找鬼辆憔。 笑死,一個(gè)胖子當(dāng)著我的面吹牛报嵌,可吹牛的內(nèi)容都是我干的虱咧。 我是一名探鬼主播,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼锚国,長吁一口氣:“原來是場噩夢啊……” “哼腕巡!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起血筑,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤逸雹,失蹤者是張志新(化名)和其女友劉穎营搅,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體梆砸,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡转质,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了帖世。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片休蟹。...
    茶點(diǎn)故事閱讀 38,605評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖日矫,靈堂內(nèi)的尸體忽然破棺而出赂弓,到底是詐尸還是另有隱情,我是刑警寧澤哪轿,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布盈魁,位于F島的核電站,受9級特大地震影響窃诉,放射性物質(zhì)發(fā)生泄漏杨耙。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一珊膜、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧车柠,春花似錦、人聲如沸竹祷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至吹菱,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間鳍刷,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工瓦胎, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人搔啊。 一個(gè)月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓柬祠,卻偏偏與公主長得像,于是被迫代替她去往敵國和親负芋。 傳聞我的和親對象是個(gè)殘疾皇子漫蛔,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 今天用react開發(fā),準(zhǔn)備引入一個(gè)組件本來是import Log from Log/index但是我卻寫成了 im...
    鄒小鄒大廚閱讀 286評論 0 0
  • 今晚又值班,剛才想跟兒子打個(gè)電話問問情況锨天,被他媽媽否決了毯盈,說是正在學(xué)習(xí)~~~看來今天的考試對他觸動不小啊,平常不扎...
    璇戎爸爸閱讀 181評論 0 0
  • 人們說迷茫是因?yàn)槟阕陨淼哪芰εc你的目標(biāo)不相符而產(chǎn)生的一種焦慮心態(tài)病袄,我們認(rèn)識到了自己的不足卻又遲遲不肯改變搂赋,因此我們...
    陰mai閱讀 197評論 0 0
  • 備注讀書筆記: 1、什么是I:這個(gè)片段說了什么陪拘?有什么用厂镇?怎么用?2左刽、如何寫出I:是什么捺信?(解決一個(gè)問題,設(shè)置場景...
    墨_石閱讀 177評論 1 1
  • 圖:雪見繪制 作者介紹: 從0到1欠痴,自學(xué)成才的半吊子插畫師 1 丙烯手繪石頭 2 水彩 3 彩鉛 4 油畫 零基礎(chǔ)...
    南溪閱讀 1,223評論 66 38