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 renderer
                                to  the window;
    create procedural geometry; 
    create a mapper; give the geometry
                                to 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在图像处理、虚拟现实、计算机图形学中的应用

图像处理:
       
虚拟现实:
      
计算机图形:
       

  • 21
    点赞
  • 85
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值