vtkProp。渲染场景中数据的可视表达(Visible Depictions)是由vtkProp的子类负责。
也就是说,数据想要进行可视化显示,需要一个转换过程,这个过程就是转换为vtkProp
这样才能进行渲染展示出来。
而vtkProp子类是vtkActor和vtkVolume,当中vtkActor用于表示场景中的几何数据(Geometry Data),vtkVolume表示场景中的体数据(Volumetric Data)。vtkActor2D经常使用来表示二维空间中的数据。通过可视化管线,如下图,可以看出最后一步是Mapper,而渲染中开始就需要
vtkActor->SetMapper(加入vtkPolyDataMapper对象)
vtkPolyDataMapper,将输入的数据转换为几何图元(点、线、多边形)进行渲染
vtkProp的子类负责确定场景中对象的位置、大小和方向信息。
位置信息的參数依赖于对象是否在渲染场景中,比方一个三维物体或者二维凝视,它们的位置信息控制方式是有所差别的。三维的Prop如vtkActor和vtkVolume(vtkActor和vtkVolume都是vtkProp3D的子类,而vtkProp3D也是继承自vtkProp),既能够直接控制对象的位置、方向和放缩信息。也能够通过一个4×4的变换矩阵来实现。而对于二维凝视功能的Props如vtkScalarBarActor,其大小和位置有很多的定义方式。当中包含指定相对于视口的位置、宽度和高度。Prop除了提供对象的位置信息控制之外,Prop内部通常还有两个对象。一个是Mapper对象,负责存放数据和渲染信息,还有一个是Property(属性)对象。负责控制颜色、不透明度等參数。见下图:
VTK中定义了大量的功能细化的Prop(超过50个),如vtkImageActor(负责图像显示)和vtkPieChartActor(用于创建数组数据的饼图可视表示)。当中的有些Props内部直接包含了控制显示的參数和待渲染数据的索引,因此并不须要额外的Property和Mapper对象。vtkActor的子类vtkFollower能够自己主动的更新方向信息保持自身始终面向一个特定的相机,这样不管怎样旋转渲染场景中的对象,vtkFellower对象都是可见的,适用于三维场景中的广告板(Billboards)或者是文本都是可见的。vtkActor的子类vtkLODActor可以自动改变自身的几何表达来实现需要达到的交互帧率。vtkProp3D的子类vtkLODProp3D则是通过从许多Mapper(可以是体数据的Mapper和几何数据的Mapper集合)中进行选择来实现交互。vtkAssembly建立Actor的等级结构以便在整个结构平移、旋转或者缩放时能够更合理的控制变换。