`

VTK 学习笔记

VTK 
阅读更多

VTK是一个面向对象的系统,高效使用VTK的关键,是要逐渐较好地理解底层的对象模型,这样做是为了去掉数百个对象的神秘外衣。理解力达到一定程度,你很容易建立应用程序。也许你想知道许多对象的功能,只有反复练习代码例子,才能对对象有所理解。在本用户指南中,我们努力提供有用的对象组合来满足你的应用。

接下来的部分,我们来构成VTK的两个对象模型:图形对象模型和可视化对象模型。这部分相对高级我们建议你强化阅读,运行本章和下一章数百个源代码布置的例子。

 

图形模型

VTK图形模型包含下列核心对象(这不是无穷对象列表,而是我们经常用到的对象):

(附图1)

 

我们把这些对象组合起来产生一个场景(参见对象表图14-8可以知道这些对象是如何联系在一起的)。Props代表我们在场景中“看见”的东西,在3D中(有一个4*4的变换矩阵)被定位和操作的Props就是vtkProp3D(例如vtkActor就是vtkProp3D的一个具体的子类,我们要进行体绘制,这个子类就是vtkVolume)。Props用来定位和表示2D数据(即图像)的类是vtkActor2DProps不直接表示几何形状,它借助Mappers对象,Mapper负责表达数据。Props也借助于一个属性对象,属性对象控制着Props的外观(颜色、漫射光、反射光效果;绘制外观:线框或面片等)。ActorsVolumes(通过超类vtkProp3D)还有一个内部变换对象(vtkTransform),这个对象封装了一个4*4矩阵,它依次控制着Prop的位置、朝向和尺度。

光照(vtkLight)用来表示和操作场景的光线,光照仅用于3D2D不需要光照。

相机对象(vtkCamera)在绘制过程中控制如何将3D投影到2D,相机具有定位、定标和定向的几种方法。此外,相机还控制透视投影和立体视(若开启),2D图像不需要相机。

映射对象(vtkMapper)与查找表相连(vtkLookupTable),用来变换和绘制几何图形,映射提供可视化流水线与图形对象模型之间的接口。vtkLookupTable是一个vtkScalarsToColors类的子类,就像vtkColorTransferFunction(典型vtkColorTransferFunction用来体绘制,参见136页)。vtkScalarsToColors的子类将映射数据转变成颜色,是最重要的可视化技术之一。

Renderers(vtkRenderer) render windows(vtkRenderWindow)用来管理图形引擎和计算机窗口系统,绘制窗就是所绘制的计算机窗口。多个绘制者可在一个绘制窗口中绘图,也可以创建多个绘制窗口。绘制区称为视口,可能在一个绘制窗口存在多个绘制区。将绘制对象绘制到窗口后,就获得了与数据交互的机会。VTK有几种与数据进行交互的方法,其一就是vtkRenderWindowInteractor,它是一种简单的工具,用来操作相机、拾取对象、调用用户方法、进出立体视、改变actors属性等。

上面提到的许多对象都有子类,这些子类具体化对象行为,例如vtkAssemblyvtkFollowervtkLODActor都是vtkActor子类。vtkAssembly允许Actors分级,恰当地管理平移、转变和尺度变换。vtkFollower是一个总是面向特定相机的ActorvtkLODActor是一个Actor对象,可改变几何表达、保持交互帧频。

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics