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和