VTK基础学习教程
来源:互联网 发布:淘宝申请客服介入流程 编辑:程序博客网 时间:2024/05/18 20:11
· 参考自 VTK中文教程
· vtk框架结构与运行机制的探讨文档下载
VTK是什么?
VTK,全称是Visualization Toolkit,即可视化工具包。是一个开源、跨平台、可自由获取、支持并行处理的图形应用函数库。
VTK最早是作为Prentice Hall在1993年出版的《The Visualization Toolkit: An Object-Oriented Approach to 3D Graphics》一书的附件出现的。该书及相应的VTK软件由美国GE公司的三位研究人员:Ken Martin、Will Schroeder和Bill Lorensen用其闲暇时间合作编著与开发的,因此该软件的授权完全由这三位决定。由于其开放源码式的授权,该书一上市后,很快就建立起VTK的使用者及开发者社区交流平台,同时GE(特别是GE医疗系统)与其他数家公司也开始提供对VTK的支持。1998年,Will Schroeder和Ken Martin离开GE创立了Kitware公司(http://www.kitware.com)。有了Kitware的资金支持,VTK社区快速地成长,其在学术研究及商业应用领域都受到重用,例如Slicer生物医学计算软件使用VTK作为其核心,许多讨论研究VTK的IEEE论文出现。VTK也是许多大型研究机构,如Sandia,Los Alamos及Livermore国家实验室与Kitware的合作基础,这些研究中心使用VTK作为数据可视化处理工具。VTK同时也是美国国家卫生研究院(National Institutes of Health,NIH)创立的美国国家医学影像计算合作联盟(National Alliance for Medical Image Computing,NA-MIC,http://www.na-mic.org)的关键计算工具。
VTK能做什么?
三维计算机图形、图像处理及可视化是VTK主要的应用方向。通过VTK可以将科学实验数据如建筑学、气象学、医学、生物学或者航空航天学,对体、面、光源等等的逼真渲染,从而帮助人们理解那些采取错综复杂而又往往规模庞大的数字呈现形式的科学概念或结果。
VTK的特点
强大的三维图形功能。VTK既支持基于体素的体绘制(Voxel-Based Volume Rendering),又保留了传统的面绘制(Surface Rendering),从而在极大的改善可视化效果的同时又可以充分利用现有的图形库和图形硬件。
VTK的体系结构使其具有非常好的流Streaming和高速缓存Caching的能力,在处理大量的数据时不必考虑内存资源的限制。
VTK能够更好的支持基于网络的工具,比如Java和VRML。随着Web和Internet技术的发展,VTK有着很好的发展前景。
能够支持多种着色,如OpenGL等。
VTK具有设备无关性,使其代码具有良好的可移植性。
VTK中定义了许多宏,这些宏极大的简化了编程工作并且加强了一致的对象行为。
VTK具有丰富的数据类型,支持对多种数据类型进行处理。
VTK的配置
中文详细配置教程
VTK的结构
VTK库的框架结构是什么样的?
VTK是在三维函数库OpenGL的基础上,采用面向对象的设计方法发展起来的。
它有2种不同的方式:图形模型
和可视化模型
, 图形模型
是3D图形的抽象, 可视化模型
是可视化的数据流程模型。
图形模型如图所示,利用了3D图形系统简单易用的特点,同时也采用了图形用户接口(GUI)的方法。
整个图形模型表现了3D图形系统的本质特征,主要有9类基本对象: 渲染控制器、渲染窗口、渲染器、灯光、摄像机、角色、特性、映射、变换。
- Render master(渲染控制器)定义与设备无关的坐标计算方法,创建渲染窗口;
- render window(渲染窗口) 管理显示设备上的窗口,一个或多个绘制方法可在渲染窗口上创建一个场景;渲染窗口是用户图形界面,其中包括了设置渲染窗口的大小,产生立体显示效果等方法:
- Renderer(渲染器) 是管理光源照相机和绘制对象等的位置、属性等,提供了世界坐标系,观察坐标系及显示坐标系之间的转换;
- Lights(灯光) 可在场景中照亮绘制对象,可通过调用参数改变控制灯光的状态、照射角度、照射强度、颜色等,
并支持点光源和平行光源。 - Camera(照相机) 是定义观察者的位置、聚焦点和其他有关属性,参数可由调用者根据需要设置。
- Actor(角色) 代表渲染场景中的绘制对象实体,通过参数调节可以设置角色的位置、方向、渲染特性、引用、纹理影射等属性,并可对角色进行缩放。
- Property(属性) 是说明几何物体的一些特性,实现三维图形真实感。
- Transform(变换) 是一个放置4×4变换矩阵的堆栈,可以进行各种操作。图形模型支持3D几何数据绘制、3D体数据绘制、2D几何文字、图像绘制。
- Mapper(映射、制图人) 指定了渲染数据和图形库中基本图元之间的联系,一个或多个角色可以使用相同的映射,有多个参数对其进行控制。
VTK应用程序的框架结构是什么样的?
VTK绘制管线(运行机制)
VTK采用的是Pipeline(管线)运行机制
,几乎可以对任何类型的数据进行处理,并提供了许多相应的类对各种类型的数据进行转换或处理。
根据所要处理的原始数据类型
和所使用的算法
以及所要达到的结果
的不同,可以设计自己的可视化流程,并由此选择不同的数据处理和转换的类,用数据通道
将这些类连接起来,将原始数据类型转换为所采用的算法模块
可以直接进行处理的数据类型,最终得到我们所需要的可视化的结果。所有的类和算法模块都是可扩充的,用户可以将自己开发的类或模块转换成系统可以接受的形式,并可替换或扩充原有的类,因此,VTK是一个开放的系统,可以扩展到任何应用领域。
VTK对体数据进行可视化的步骤如图2所示:
1. 按照所要处理的原始数据类型的不同选择不同的类。 vtkObiect
是Visualization Toolkit类库
的基类,它为整个可视化流程提供基本的方法, vtkSource
是vtkObiect
的派生类和vtkFilter
的父类,它为整个可视化流程的开始比如读取数据等定义具体的行为和接口;
2. 过滤器接收数据源中的数据,进行各种不同的过滤操作。 vtkFilter
是vtkSource
的派生类,它对数据进行各种处理,将原始数据经过各种过滤器的处理后,转换为可以直接用某种算法模块对其进行处理的形式;
3. 映射是将处理过的适当数据形式映射为几何数据。 vtkMapper
也是vtkObiect
的派生类,它将经过各种filter
处理后的应用数据映射为几何数据,为原始数据与图像数据之间定义了接口。
4. 角色将可视化的数据在窗口中表现出来,在Visualization Toolkit
中任何可视化的数据都是通过角色在窗口中表现出来的。
vtkActor类用来表达绘制场景 中的一个实体,它通过SetMappe()
方法将几何数据的属性告诉角色
5. 最后通Actor
通过vtkRender
类将结果在窗口中显示出来。
英文看不习惯的话可以看这张图
- VTK基础学习教程
- VTK基础学习
- VTK基础
- VTK学习-VTK管线
- VTK教程之十三 可视化基础算法-位…
- VTK教程之七 可视化基础算法-概述
- VTK教程之八 可视化基础算法-颜色…
- VTK教程之十 可视化基础算法-三维…
- VTK教程之九 可视化基础算法-二维…
- VTK教程之十一 可视化基础算法-方…
- VTK教程之十二 可视化基础算法-几…
- VTK学习-VTK基本数据结构
- 学习VTK之路——基础篇(1)
- VTK学习之路——可视化基础算法
- VTK Online教程大全
- VTK教程系列
- VTK安装配置教程
- VTK-VS2008编译教程
- SQLite数据类型详解
- ATL入门之配置ATL环境
- 抽象与接口的区别
- cmd命令大全
- 多线程
- VTK基础学习教程
- 黑马程序员——OC学习——基础语法一
- 设计模式之观察者模式
- Xcode7.1不能使用Alcatraz解决方案
- 安全高效多渠道打包App
- 对于android WebView加载不出Html5网页的解决方法
- Android-Android API 版本判断
- Unity3d学习11
- Struts2:输入校验