VTK 学习----VTK基础-VTK概述和架构概述

3.1 VTK概述

什么是VTK?VTK最初被设想为科学数据可视化系统。该领域之外的许多人将可视化视为特定类型的几何渲染:检查虚拟对象并与它们交互。虽然这确实是可视化的一部分,但一般而言,数据可视化包括将数据转换为感官输入的整个过程,通常是图像,但也包括触觉,听觉和其他形式。数据形式不仅包括几何和拓扑结构,包括诸如网格或复杂空间分解之类的抽象,而是核心结构的属性,例如标量(例如,温度或压力),向量(例如,速度),张量(例如,应力和应变)加上渲染属性,如曲面法线和纹理坐标。

注意,表示时空信息的数据通常被认为是科学可视化的一部分。然而,存在更多抽象数据形式,例如营销人口统计,网页,文档和其他信息,这些形式只能通过抽象(即非空间时间)关系来表示,例如非结构化文档,表格,图形和树。这些抽象数据通常通过信息可视化的方法来解决。VTK能够进行科学和信息可视化。

作为可视化系统,VTK的作用是以这些形式获取数据并最终将它们转换为人类感觉设备可理解的形式。因此,VTK的核心要求之一是它能够创建能够摄取,处理,表示和最终呈现数据的数据流管道。因此,工具包必须构建为灵活的系统,其设计在很多层面上都反映了这一点。例如,将VTK设计为具有许多可互换组件的工具包,这些组件可以组合以处理各种数据。

 

3.2 VTK架构

VTK系统主要由 C++类库、解释包装层(对 C++类库进行包装,便于 TCL、Java 等语言使用)两个基本子系统构成,如下图:

VTK 学习----VTK基础-VTK概述和架构概述

采用这种架构的优势是我们能使用 C++语言建立高效的算法,用其他的脚本语言(如TCLPython)可以进行快速的开发,当然,如果精通 C++,也可以用 C++语言建立应用程序。

VTK 是一个基于面向对象的系统,提高VTK 开发效率的关键因素是建立一个好的、易于理解的、优化的对象模型,我们根据对象模型,很容易把各种对象组合起来,构建应用程序。