日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【转】VTK修炼之道1_初识VTK

發布時間:2023/12/10 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【转】VTK修炼之道1_初识VTK 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.VTK是什么?

Visualization ToolKit
3D計算機圖形學、圖象處理及可視化工具包

?

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在圖像處理、虛擬現實、計算機圖形學中的應用

圖像處理:

? ? ? ?

虛擬現實:

? ? ??

計算機圖形:

? ? ? ?

總結

以上是生活随笔為你收集整理的【转】VTK修炼之道1_初识VTK的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。