VTK入门教程04:简介

系列索引:VTK入门教程索引

VTK

可视化工具包(Visualization Toolkit,VTK)是一种用于操作和显示科学数据的开源软件。它提供了最先进的3D渲染工具,一套用于3D交互的小部件,以及广泛的2D绘图功能。

简介

VTK是一个开源的、免费提供的软件系统,可用于3D计算机图形、建模、图像处理、体积渲染、科学可视化和2D绘图。它支持多种可视化算法和高级建模技术,并分别利用线程内存和分布式内存并行处理来实现速度和可伸缩性。
VTK被设计为平台无关。这意味着它几乎可以在任何地方运行,包括在Linux、Windows和Mac上;在网络上;和在移动设备上。
VTK采用Kitware质量软件流程,包括CMake、CTest、CDash和CPack来构建、测试和打包系统。与一个强大的分布式开发人员社区相结合,其结果是非常高质量、健壮的代码。VTK的核心功能是用C-++编写的,以使效率最大化。这个功能被打包到其他语言绑定中,以便面向更广泛的受众。与Python的互操作性特别完善。
作为一种开源软件,VTK可以免费用于任何目的。从技术上讲,VTK有一个bsd风格的许可证,它对开放和闭源应用程序施加了最小的限制。

历史

VTK最初是教科书The Visualization Toolkit An Object-Oriented Approach to 3D Graphics的部分。威尔·施罗德、肯·马丁和比尔·洛伦森——三名图形和可视化研究人员——从1993年12月开始,在他们自己的时间编写了这本书和配套软件,并得到了他们当时的雇主通用电气研发公司的法律许可。这本书的动机是与其他研究人员合作,开发一个开放的框架来创建前沿的可视化和图形应用程序。
VTK源于作者在通用电气的经验,特别是LYMB面向对象的图形系统。其他影响包括由施罗德等人开发的视觉可视化系统。伦斯勒理工学院开发的面向对象的计算机动画系统;以及比尔·洛伦森合著的面向对象建模与设计书。
在VTK的核心被编写出来之后,世界各地的用户和开发人员开始改进系统并将系统应用于现实世界的问题。特别是,通用电气医疗系统公司和其他通用电气业务对该系统做出了贡献,佩妮·莱茵汉斯博士等研究人员开始用这本书进行教学。其他早期的支持者包括洛斯阿拉莫斯国家实验室的吉姆·阿伦斯和慷慨的石油和天然气支持者。
为了创建一个大的,活跃的,全球社区,肯和威尔连同丽莎阿维拉,查尔斯法律和比尔·霍夫曼离开通用电气在1998年创建Kitware公司.从那时起,成百上千的额外的开发人员把VTK变成现在世界上首屈一指的可视化系统。例如,Sandia国家实验室一直是一个强有力的支持者和共同开发者,他们改进了VTK中的2D图表和信息可视化。

特性

过滤器

VTK应用程序使用过滤器操作数据。每个过滤器检查其接收到的数据并生成派生的数据。一组连接的过滤器形成了一个数据流网络。可配置网络将原始数据转换为更易于理解的格式。

图形系统

VTK在底层图形库上添加了一个呈现抽象层(大部分是OpenGL)。这个更高级别的层次简化了创建引人注目的可视化的任务。

数据模型

VTK的核心数据模型能够代表几乎任何与物理科学相关的现实世界问题。基本数据结构特别适合于涉及有限差分和有限元解的医学成像和工程工作。

数据交互

交互可以帮助您理解数据的内容、形状和意义。在VTK中,3D小部件、交互器和与像Qt这样的2D小部件库的接口使您能够为您的程序添加全面的用户交互。

2D图和图表

VTK有一组完整的二维图和图表类型。VTK的选择和选择功能可以帮助您交互式地查询数据。此外,VTK与Python非常具有可互操作性,包括矩阵库。

并行处理

VTK对MPI下的可扩展分布式内存并行处理具有良好的支持。更重要的是,许多VTK过滤器通过vtkSMP(用于粗粒度线程)和vtk-m(用于多核和GPU架构上的细粒度处理)来实现更细粒度的并行性。


VTK入门教程04:简介
https://blog.jackeylea.com/vtk/intro-of-vtk/
作者
JackeyLea
发布于
2024年4月15日
许可协议