VTK 学习----VTK基础-VTK的两种对象模型

本文深入探讨了VTK(Visualization Toolkit)的图形模型与可视化模型,详细介绍了图形模型中的核心类,如vtkActor、vtkCamera等,以及可视化模型中的数据流方式,包括数据对象、过程对象和可视化流水线的组成部分。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

3.2.1 VTK的两种对象模型

VTK 系统的两种对象模型:图形模型和可视化模型。

3.2.1.1 VTK图形模型

VTK图形模型由以下核心类组成:

  1. vtkActor、vtkActor2D、vtkVolume
  2. vtkLight
  3. vtkCamera
  4. vtkProperty,vtkProperty2D
  5. vtkMaper,vtkMapper2D – vtkAbstractMapper 的子类
  6. vtkTransform
  7. vtkLookupTable,vtkColorTransferFunction- vtkScalarsToColors的子类
  8. vtkRender
  9. vtkRenderWindow
  10. vtkRenderWindowInteractor

注意:这里并不是一个完整的包含所有类的列表,只是列出了最常用的类。

Props 表示在场景中能“看到”的东西(如场景中的地形、山脉、人物、花草等),如果Props 是 vtkProp3D 类型,它能操作 3D,如果 Props 是 vtkProp2D 类型,它能表现 2D 数据,Props 不能直接表现几何数据,在 VTK 中用 Mapper 表现几何数据,Props 能够引用 Property(属性)对象,Property 对象能够控制 Pros 的外观(如颜色、灯光、显示模式等), 在 Actors、Volumes 类中也有一个控制 Props 位置、方向的内部变换对象(vtkTransform),vtkActor是 vtkProper3D 的一个子类。

Lights(vtkLight)是用于表现和处理光线的,Lights 只用于三维,在二维中我们不使用光线。

相机类(vtkCamera)在绘制过程中,用相机类控制被绘制到场景中的物体的数量,相机类提供了一些方法控制相机的位置,同时相机类也控制透视投影和立体观察。

映射器类(vtkMapper)经常和查找表类(vtkLookupTable)一起对几何体进行变换和绘制,该类也是图形模型和可视化流水线之间的接口。
查找表类vtkLookupTable和 颜 色 变 换 类 tkColorTransferFunctionvtkScalarsToColors 类的子类,主要为映射的数据赋予不同的颜色。

绘制类(vtkRenderer)和绘制窗口类(vtkRenderWindow)管理图形引擎和计算机窗口系统之间的接口,绘制窗口是绘制图形的显示区域,多个绘制图形也许显示在一个绘制窗口中,但是,用户可以同时创建多个绘制窗口,绘制数据在绘制窗口显示的区域被称为视口,一个绘制窗口可以同时有多个视口。

vtkRenderWindowInteractor,这是一个操作相机对象和拾取工具的类,调用用户定义方法,进入/退出立体视角,并且修改 Actor 的一些属性。

3.2.1.2 VTK可视化模型

图形模型的主要作用是用图形描述几何体构成的场景,可视化流水线的主要作用是把几何数据(如立方体的顶点坐标)转换成图形数据和负责构建几何体,VTK 使用数据流的方式把几何体数据转换成图形数据,主要有两个基本类和数据转换相关,它们是:

  1. vtkDataObject

数据对象表达各种类型的数据,vtkDataObject 可以被看作是一个二进制大块(blob)数据,结构化的数据可以被认为是一个数据集(dataset) (vtkDataSet 类)。

                                    VTK 中的数据对象类型

a 均匀网格 b 线性网格 c 结构网格 d 离散点 e 多边形 f 非结构网格

数据对象由几何和拓扑结构组成(点集和单元集), 同时数据对象与属性数据(例如缩放比例和向量)相关,这些属性数据用于描述数据对象中的点集和单元集的属性(对于一个办公桌而言,描述桌面的颜色、描述桌腿的颜色),单元集是数据对象的基本组成单位(如一个立方体对象由若干个三角形构成,这些三角形就是单元集,也可以称为图元),下图显示了VTK支持的各种属性数据。

                        VTK 中用于描述单元集和点集的属性数据

  1. vtkProcessObject

过程对象一般也称为过滤器,按照某种运算法则对数据对象进行处理,对数据对象的数据进行优化,过程对象表现系统中的几何形状,数据对象和过程对象连接在一起形成可视化流水线(例如,数据流网络),下图是一种可视化流程的描述。

                       数据对象和过程对象连接创建可视化流水线

在可视化流水线中,主要包括源对象、过滤器对象、映射器对象三种对象。

(1)源对象。源对象是可视化流水线的起点,源对象依据数据生成的方式,分为如下两种类型:

  • 过程源对象:可以通过读数据文件的方式(读对象)产生数据。
  • 程序源对象:也可以用数学表达式或其它的数学方法产生数据。

(2)过滤器对象。过滤器对象接收一个或多个数据对象作为输入,对数据对象处理之后生成一个或多个数据对象作为输出。

(3)映射器。映射器(Mapper)对象是可视化流水线的终点,是图形模型和可视化模型之间的接口,其主要作用是将数据对象转换成图形对象,然后由图形引擎绘制出来,复写器是映射器的一种类型,作用是将数据写入文件或流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dylan55_you

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值