本章小结
1 本章主要介绍了什么是VTK;VTK能做些什么事情;如何获取VTK的源码,同时列举了除本书以外的其他VTK学习资源。
此外,为安装VTK做了非常充分的准备工作,了解了在编译安装VTK之前需要先安装哪些软件。然后一步一步地演示如何编译VTK,这个过程还是比较简单的。编译完VTK后,通过这个小程序学习了CMakeLists.txt脚本的写法,并掌握了6个CMake命令,分别是CMAKE_MINMUM_REQUIRED,PROJECT,FIND_PACKAGE,INCLUDE,ADD_EXECUTABLE和TARGET_LINK_LIBRARIES。
2 本章在第1章示例程序的基础上做了扩展,引入了VTK的一些基本概念,包括Mapper,Actor,RenderWindow,Renderer和RenderWindowInteractor等。紧接着介绍了计算机图像学三维渲染的几个基本概念——光照,相机和纹理映射等。本章的第3节简单介绍了VTK的坐标系统及其坐标变换。“VTK管线”和“VTK智能指针”两节向读者阐释了学习和使用VTK时需要深入理解的概念,其中VTK可视化管线贯穿所有的VTK应用程序,而理解与掌握VTK智能指针的使用有利于写出更加高效的VTK应用程序。
学习本章时,读者需要一些基本的计算机图形学的知识储备,因为VTK的一个主要应用方向就是计算机图形学领域。同时,建议读者在学习本章内容的同时复习一下C++基础知识。
3 VTK基本数据结构
正如文章开头所说,光是了解每种原料的特点而没有掌握做菜的流程,依然做不出美味可口的菜。就好比学习《数据结构》这门课程,在学习数据结构的同时,都会通过学习某些算法来理解各种数据结构的用法。否则,即使掌握了各种各样的数据结构,也不知道如何使用它们。学习本章所介绍的数据结构的用法时,可以参考第5章和第6章相关的算法加以理解。对于VTK中的某些概念性的东西,还是有必要掌握的。
本章主要介绍了数据对象(vtkDataObject),数据数组(vtkDataArray)和场数据(vtkFieldData)等内容。
(1)vtkDataObject
VTK中的数据一般是以数据对象的形式表现的,vtkDataObject是VT