vtk图形模型九类对象

原文出处:http://hi.baidu.com/colorfulweiwei/blog/item/509e4109172dfda62eddd4f2.html

2009-07-12 23:06

分为两种:vtk 是基于C++的库,自然是面向对象的库了~ 对象类型有两种
图形模型对象(the Graphics Models)
可视化模型对象(the Visualization Models)

整个图形模型主要分为九类对象:
(1)渲染控制器: 定义与设备无关的坐标 计算方法, 创建绘制窗口;
(2)渲染窗口(RenderWindow):其基类为vtkRenderWindow, 管理显示设备上的窗口, 一个或多个绘制方 法可在渲染窗口上创建一个场景。渲染窗口是用户图形界面, 其中包括 了设置渲染窗口的大小, 产生立体显示效果等的方法, 一共控制控制两个缓存;
(3)渲染器(Renderer):基类为vtkRenderer,作用是管理光源、照相机和绘制对象等的位置、属性等; 提供 世界坐标系, 观察坐标系及显示坐标系之间的转换 。建立好一个Renderer 后将其加入RenderWindow中即可将场景显示出来;
(4)灯光( Light):VTK中的实现类为vtkLight,
(5)照相机(Camera): VTK实现类为vtkCamera,
(6)角色(Actor):vtkActor代表渲染场景中的绘制对象实体 ,通过参数的调节可以设置角色的位置方向, 渲染 特性(Property),引用(renference),纹理影射(Texture)等属性,并可对Actor进行放缩。角色 的改变是通过一个4*4的变换矩阵实现的;
(7)属性(Property):实现类为vtkProperty。要使三维 物 体具有真实感, 必须说明几何物体的一些特性,例如 光照特性(泛光,漫反射,镜面反射,边缘颜色),反射强度,物体的灰度,物体的绘制样式(点, 线框, 表面) ,着色模式( flat, Gouraud, Phong)等;VTK 中正是通过属性模型来对其进行说明的;
(8)映射(Mapper):vtkMapper指定了渲染数据和图形库中基本图元之间的联系。VtkMapper的一些派生
   类通过LookupTable映射数据并控制图形库中相应Actor 图元的生成。一个或多个Act        or可以使用相同的Mapper。Mapper有多个参数对其进行控制, 如ScalarVisibility 标志 可以设置scalar的数据是否影响相关的Actor 的颜色; ScalarMode 可以控制Actor的颜 色是scalar point还是cell的值; 渲染方式可以通过 ( ImmediateModeRenderingOn)和( ImmediateModeRenderingOff) 控制, 前一项表示立即渲染, 后一 项表示将渲染放于渲染列表中, 一般选择ImmediateModeRenderingOn方式进行, 选择后者将会占用较多的系统资源, 影响系统的性能;
(9)变换(Transform):vtkTransform是一个放置4*4变换矩阵的堆栈, 可对这一堆栈进行各种操作, 如:平 移, 缩放, 旋转等, 一般在栈的顶部进行。实现过程主要由渲染控制器创建渲染窗口,由渲染器在渲染窗口上绘制场景。场景包括绘制对象、映射、属性、变换、光 源、照相机等。VTK获取数据的方式是基于拉技术 , 即在管道的下一对象请 求数据时, 管道对象才进行数据集的相关处理, 因此可减小系统的运算负荷, 这对提 高系统实时性大有好处。
可视化模型(theVisualization Models)
用VTK进行可视化应用是非常方便的,它包括两个基本部分。首先,建立适当的目标图形来演示数据;其次, 建立一个数据流水线(data pipeline)来处理数据, 建立流水线(pipeline)就是将Source、Filters 和Mappers连接起来。VTK的可视化模型主要包括两类对象:
(1)数据对象

(a)多边形数据(vtkPloyData):表示由顶点、直线、多边形即三角面片组成的几何体, 支持多种的原子类
             型, 如vtkVertex,vtk-PloyVertex, vtkLine 等。
(b)结构点数据(vtkStructurePoint):是一包括表面形状及几何形状的几何体。
(c)非结构点数据(vtkUnStructurePoint):指定了几何体的外观;结构网格( vtkStructureGrid):指定了几何
                体的结构。
(d)非结构网格(vtkUnStructureGrid):可以为任意的cell 类型的组合。
(e)数据对象继承关系。
(2)过程对象
VTK 中定义的过程对象根据其pipeline主要包括了数据源(Source),过滤器(Filters),映射(Mappers),数据流水线(data pipeline),过程如图所示:


数据源(Source): vtkSource是所有数据源的基类, 其子类定义了许多数据源类型;
过滤器(Filters):vtkFilter 是各种Filter的基类, 从vtkSource中派生出来, 接收Source 中的数据, 进行种
   不同的Filter处理工作。Filters为VTK的主要部件, 由其基类派生出了许多子类, 实现了
   图形学算法。将其封装起来, 用户只需要编写简单程序接口调用就可, 并可以通过改变
   参数来达到想要的效果;
映射(Mappers) : vtkMapper 是所有Mappers 的基类, 从Filtes接受数据,并把其映射为图形库中的基本图
元。根据映射方式的不同, 有多个继承子类。

你可能感兴趣的:(算法,filter,actor,图形,网格,Visualization)