赞
踩
三维计算机图形、图像处理及可视化是VTK主要的应用方向。通过VTK可以将科学实验数据如建筑学、气象学、医学、生物学或者航空航天学,对体、面、光源等等的逼真渲染,从而帮助人们理解那些采取错综复杂而又往往规模庞大的数字呈现形式的科学概念或结果。
强大的三维图形功能。VTK既支持基于体素的体绘制(Voxel-Based Volume Rendering),又保留了传统的面绘制(Surface Rendering),从而在极大的改善可视化效果的同时又可以充分利用现有的图形库和图形硬件。
VTK的体系结构使其具有非常好的流Streaming和高速缓存Caching的能力,在处理大量的数据时不必考虑内存资源的限制。
VTK能够更好的支持基于网络的工具,比如Java和VRML。随着Web和Internet技术的发展,VTK有着很好的发展前景。
能够支持多种着色,如OpenGL等。
VTK具有设备无关性,使其代码具有良好的可移植性。
VTK中定义了许多宏,这些宏极大的简化了编程工作并且加强了一致的对象行为。
VTK具有丰富的数据类型,支持对多种数据类型进行处理。
VTK是在三维函数库OpenGL的基础上,采用面向对象的设计方法发展起来的。
它有2种不同的方式:图形模型
和可视化模型
,
图形模型如图所示,利用了3D图形系统简单易用的特点,同时也采用了图形用户接口(GUI)的方法。
整个图形模型表现了3D图形系统的本质特征,主要有9类基本objects
摄像头属性表示如下:The clipping planes are used to eliminate data either too close to the camera or too far away. As a result only actors or portions of actors within the clipping planes are (potentially) visible。前后切面的位置可以通过摄像头的clipping range进行设置。
摄像头围绕焦点的运动有三种方式,如下图所示
可视化系统中包括三种坐标系统:模型坐标系统,世界坐标,显示坐标,视图坐标。四者关系如下图所示:
视图坐标系表示摄像头的可见部分,显示坐标系与view坐标是使用相同的基,但是没有限制-1到1,且坐标表示实际的x,y的像素位置。世界坐标系是Actor所在的位置坐标。模型坐标系是模型定义的笛卡尔坐标。
VTK采用的是Pipeline(管线)运行机制
,几乎可以对任何类型的数据进行处理,并提供了许多相应的类对各种类型的数据进行转换或处理。
VTK对体数据进行可视化的步骤: Source-> Filter -> Mapper -> Actor -> Render
1. 按照所要处理的原始数据类型的不同选择不同的类。 vtkObiect
是Visualization Toolkit类库
的基类,它为整个可视化流程提供基本的方法, vtkSource
是vtkObiect
的派生类和vtkFilter
的父类,它为整个可视化流程的开始比如读取数据等定义具体的行为和接口;
2. 过滤器接收数据源中的数据,进行各种不同的过滤操作。 vtkFilter
是vtkSource
的派生类,它对数据进行各种处理,将原始数据经过各种过滤器的处理后,转换为可以直接用某种算法模块对其进行处理的形式;
3. 映射是将处理过的适当数据形式映射为几何数据。 vtkMapper
也是vtkObiect
的派生类,它将经过各种filter
处理后的应用数据映射为几何数据,为原始数据与图像数据之间定义了接口。
4. 角色将可视化的数据在窗口中表现出来,在Visualization Toolkit
中任何可视化的数据都是通过角色在窗口中表现出来的。
vtkActor类用来表达绘制场景 中的一个实体,它通过SetMappe()
方法将几何数据的属性告诉角色
5. 最后通Actor
通过vtkRender
类将结果在窗口中显示出来。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。