最近在做的項目需要用到vtk,把一些基礎知識整理一下記錄下來,方便以後查看。
VTK的工作原理:
VTk通過數據流實現變信息爲圖形數據的。
數據流一般爲:source—filter——mapper——actor——render——renderwindow——interactor。
要理解工作原理,首先明確幾個類型:
1.vtkSource(數據源) 這個就好比一個劇本里面的角色,讓演員知道要演的是什麼人物。
數據源有:vtkConeSource,vtkSphereSource,vtkOutlineSource...等等。
它們都繼承與vtkPolyDataAlgorithm類,該類用於提供不同的類型的數據源
2.vtkMapper(映射器) 它就像是一個劇本,應該如何塑造角色的裝扮
映射器有:vtkDataSetMapper,vtkMultiGroupPolyDataMapper,vtkPolyDataMapper。
它們都繼承於vtkMapper類。所有的數據對象都要通過映射器Mapper映射到vtkActor中。
3.vtkActor(演員) 有了劇本,有了角色,得找個真人來演出這個劇本了。
該類繼承於vtkProp3D,有4個子類:vtkFollow,vtkLODActor,vtkMesaActor,vtkOpenGLActor.
4.vtkRenderer(渲染器) 這個過程就相當於對演員進行化妝並佈置場景;
該類繼承於vtkViewport,有2個子類:vtkMesaRender,vtkOpenGLRender.
該類另外一個作用是設置窗口vtkRenderWindow的背景.
5.vtkRenderWindow(窗口) 這個就相當於個舞臺 ,把準備好的演員放進去,準備表演了;
該類繼承於vtkWindow,有2個子類:vtkMesaWindow,vtkOpenGLWindow.
6.vtkRenderWindowInteractor(窗口交互器) 這個像攝像機,用於捕捉演員的動作,然後傳給導演看
該類的繼承關係在vtkRenderWindowInteractor文章中已給出。
7.vtkInteractorObserver(觀察者) 有點導演的意思,導演通過觀看錄像後,做出一系列調整
該類的繼承關係在vtkRenderWindowInteractor文章中已給出
源Source對象:通過讀取文件或重構數據對象產生數據。
過濾器Filter:將輸入數據處理後生成新的數據,其中輸入或輸出數據可以單個,或多個Source object
繪圖器Mapper:位於圖形模型中,將數據轉成圖形數據(可由圖形引擎渲染)
Writer:是一種Mapper,可以將數據寫入文件或輸出流中。