VTK是一个面向对象的系统,高效使用VTK的关键,是要逐渐较好地理解底层的对象模型,这样做是为了去掉数百个对象的神秘外衣。理解力达到一定程度,你很容易建立应用程序。也许你想知道许多对象的功能,只有反复练习代码例子,才能对对象有所理解。在本用户指南中,我们努力提供有用的对象组合来满足你的应用。
接下来的部分,我们来构成VTK的两个对象模型:图形对象模型和可视化对象模型。这部分相对高级—我们建议你强化阅读,运行本章和下一章数百个源代码布置的例子。
图形模型
VTK图形模型包含下列核心对象(这不是无穷对象列表,而是我们经常用到的对象):
(附图1)
我们把这些对象组合起来产生一个场景(参见对象表图14-8可以知道这些对象是如何联系在一起的)。Props代表我们在场景中“看见”的东西,在3D中(有一个4*4的变换矩阵)被定位和操作的Props就是vtkProp3D(例如vtkActor就是vtkProp3D的一个具体的子类,我们要进行体绘制,这个子类就是vtkVolume)。Props用来定位和表示2D数据(即图像)的类是vtkActor2D。Props不直接表示几何形状,它借助Mappers对象,Mapper负责表达数据。Props也借助于一个属性对象,属性对象控制着Props的外观(颜色、漫射光、反射光效果;绘制外观:线框或面片等)。Actors和Volumes(通过超类vtkProp3D)还有一个内部变换对象(vtkTransform),这个对象封装了一个4*4矩阵,它依次控制着Prop的位置、朝向和尺度。
光照(vtkLight)用来表示和操作场景的光线,光照仅用于3D,2D不需要光照。
相机对象(vtkCamera)在绘制过程中控制如何将3D投影到2D,相机具有定位、定标和定向的几种方法。此外,相机还控制透视投影和立体视(若开启),2D图像不需要相机。
映射对象(vtkMapper)与查找表相连(vtkLookupTable),用来变换和绘制几何图形,映射提供可视化流水线与图形对象模型之间的接口。vtkLookupTable是一个vtkScalarsToColors类的子类,就像vtkColorTransferFunction(典型vtkColorTransferFunction用来体绘制,参见136页)。vtkScalarsToColors的子类将映射数据转变成颜色,是最重要的可视化技术之一。
Renderers(vtkRenderer) 和render windows(vtkRenderWindow)用来管理图形引擎和计算机窗口系统,绘制窗就是所绘制的计算机窗口。多个绘制者可在一个绘制窗口中绘图,也可以创建多个绘制窗口。绘制区称为视口,可能在一个绘制窗口存在多个绘制区。将绘制对象绘制到窗口后,就获得了与数据交互的机会。VTK有几种与数据进行交互的方法,其一就是vtkRenderWindowInteractor,它是一种简单的工具,用来操作相机、拾取对象、调用用户方法、进出立体视、改变actors属性等。
上面提到的许多对象都有子类,这些子类具体化对象行为,例如vtkAssembly、vtkFollower和vtkLODActor都是vtkActor子类。vtkAssembly允许Actors分级,恰当地管理平移、转变和尺度变换。vtkFollower是一个总是面向特定相机的Actor。vtkLODActor是一个Actor对象,可改变几何表达、保持交互帧频。
相关推荐
NULL 博文链接:https://aswang.iteye.com/blog/1250669
初学者 VTK学习笔记 对于刚入门的人有启示意义 希望有所帮组
VTK学习笔记,比较基础的VTK学习资料,基于VTK User Guide和VTK Textbook学习
VTK安装指导,很有用的资料,大家看下哦
最近学习VTK所找到的一些资料。包括VTK中文手册(中文VTK User's Guide(带书签)),vtk的ppt,VTK学习笔记,示例程序等等
这是我在学习vtk过程中的学习笔记 希望能给大家带来帮组 ,里面有好多基础介绍 对于初学者来说 是不可多得的学习材料 对于已经有了些经验的人来说 这个是不需要的
VTK 编程简介 VTK数据类型 VTK教程之一 可视化管线 VTK教程之二 可视化管线的执行 VTK教程之三 数据集 VTK教程之四 单元和点集 VTK教程之五 数据集的类型和数据集的属性数据 VTK教程之六 构建数据集的例子...
VTK初学者教程, 学习实例. 内附我自己的阅读笔记, 代码注释等等
学习笔记 我的学术学习课程记录 内容 编程框架 机器学习和医学图像计算编程框架的内容 图书馆 用法 医疗注册和细分 GPU程式设计 强化学习 差异化的计算机视觉 医学影像处理 优化编译器 OpenCV 计算机视觉 Psutils ...
ParaView用C++编写,基于VTK(Visualization ToolKit)开发,图形用户界面用Qt开发,开源、跨平台。 ParaView是一个开源的,跨平台的数据处理和可视化程序。ParaView用户可以迅速的建立起可视化环境利用定量或者...
:robot: AI面试笔记什么是人工智能? 人工智能可以描述为模拟机器中人类智能的计算机科学领域。 这是关于基于可用数据做出决策的智能算法。什么是智能代理? 智能代理是利用传感器来了解情况并做出决策的自治实体。 ...