VTK修炼之道1_初识VTK
生活随笔
收集整理的這篇文章主要介紹了
VTK修炼之道1_初识VTK
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.VTK是什么?
Visualization ToolKit3D計算機圖形學、圖象處理及可視化工具包
VTK使用C++、面向對象技術開發;基于OpenGL,封裝了OpenGL中的功能,屏蔽細節、便于交互、易于使用提供多種語言接口C++ 、Java 、Tcl、?Python 等;可在Windows 98/NT, SGI, Linux, ?Sun, HP等系統編譯運行;最重要的一點是:開源(Open Source)。
典型應用一:體繪制 ? ? ??
典型應用二:面繪制 ???
典型應用三:矢量場的可視化
2.VTK的使用流程
VTK ?流水線機制Visualization Model:generation geometry Graphics Model:rendering 一般可視化流程可以詳細表述為:
繪圖過程(Graphics Model):目的是將圖形原語在屏幕上顯示。
下面舉一個典型的例子來理解Actor:
用偽代碼來表征這個過程為: Main() { create a window; create a renderer; give the rendererto the window;create procedural geometry; create a mapper; give the geometryto the mapper; create an actor; give the mapper to the actor; give the actor to the renderer; window->render(); } 即:Windows->Render->Actor->Mapper->Geometry
3.VTK的開發流程
4.一個比較震撼的實例
//得到圖像文件 vtkDICOMImageReader *Reader = vtkDICOMReader::New(); Reader ->SetDirectoryName(""); Reader ->Update(); //MC vtkMarchingCubes *m_MC = vtkMarchingCubes::New(); m_MC ->SetInput(Reader->GetOutput()); m_MC ->SetValue(0, 200); //獲得皮膚幾何數據的屬性 vtkPolyDataMapper *Mapper= vtkPolyDataMapper::New(); Mapper-SetInput(m_MC ->GetOutput()); //顯示 vtkActor *m_actor = vtkActor::New(); m_actor->SetMapper(m_isoMapper); //皮膚顏色 m_actor->GetProperty()->SetDiffuseColor(0, .49, .25); //設置反射率 m_actor->GetProperty()->SetSpecular(0.3); //設置反射光強 m_actor->GetProperty()->SetSpecularPower(20); //不透明度 m_actor->GetProperty()->SetOpacity(1); //繪制 vtkRenderer *m_renderer = vtkRenderer::New(); m_renderer ->AddActor(m_actor); m_renderer ->SetBackground(0.2,0.5,0.3);vtkWin32OpenGLRenderWindow *m_renWin = vtkWin32OpenGLRenderWindow::New(); m_renWin-> AddRenderer(m_renderer); m_renWin-> Render();vtkRenderWindowInteractor *m_iren = vtkRenderWindowInteractor::New(); m_iren->SetRenderWindow(m_renWin); VTK主要工作流程符合流水線機制,永恒不變,但使用起來要靈活應用其中的一些類,不要單純的拘泥于最基本的流水線,其實有些類充當一個角色,有些類可以連續承擔多個角色。5.VTK在圖像處理、虛擬現實、計算機圖形學中的應用
圖像處理: ? ? ? ?虛擬現實: ? ? ??
計算機圖形: ? ? ? ?
與50位技術專家面對面20年技術見證,附贈技術全景圖
總結
以上是生活随笔為你收集整理的VTK修炼之道1_初识VTK的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小波的秘密6_小波包的理解
- 下一篇: 比较完善的是vmware Fusion和