vtk的简单介绍和安装

 
自己用 vtk 有两三年了,不精不专,但多少有些收获,一时兴起,写一些 vtk 安装的文字。我选用的 version 是最新的稳定版本 5.0 ,其实所有的内容都可以从 vtk 官方网站 http://vtk.org 上获得。
一、简要介绍
VTK(Visualization Toolkit)
是一款用于二次开发的可视化工具包,在世界上同类产品中最有影响,基本上可以作为可视化领域的规范。
VTK
的历史和现状:
1993
12 月, GE Will Schroeder, Ken Martin 两个人写了一本书: The Visualization Toolkit: An Object-Oriented Approach to 3D Graphics VTK 作为这本书的配套软件赠送。由于 VTK 的出色表现,人们对软件的关注程度远远超过了书,没有几年时间 VTK 就拥有了巨大的用户群。 VTK 现在是由 kitware 公司维护,以开源的形式开发,全世界所有的人都可以加入到开发者的行列。现在 VTK 的稳定版本是 5.0 nightly 版本每天都会有更新。
VTK
的特点: Open Source 。采用 CVS 版本控制跨平台。支持 Windows Unix Linux Mac 等多种平台功能强大。适合几乎所有的可视化领域,从医学可视化到数据可视化,都能找到 VTK 的用户支持多种语言开发。 c 语言当然不用说了,还包括脚本语言,如 TCL Python ,也支持 Java 具有强大的开发团队。包括多家开发单位,具有商业化的维护,具有来自全世界使用者的智力资源 :)
二、安装前的准备
因为 VTK 是开源的,我们能从官方网站上得到它的源码,又因为它是跨平台的,我们就要对源码进行一些包装,才能被 gcc vc6.0 等不同编译器所接受。 VTK 使用的跨平台工具是 CMake ,它也是 kitware 公司的产品,可以从官方主页上获取。

很多人不清楚 cmake 到底是干什么的,我这里想解释解释。我们下载的 vtk 源码都是用 c++ 编写的,是一个大的工程,无论在什么平台,用什么编译器,你都要告诉编译器该如何去编译这么一个庞然大物。工程文件是工程的一般组织形式,比如 vc6.0 下面是 dsw 文件, gcc 下可以把 makefile 看成这么一个东西。这些工程体系告诉编译器该干什么,需要什么样的参数等,好, cmake 就是这样一个用来生成适合不同编译器所需要的工程文件的工具。 cmake 为什么知道那些编译参数呢,这不得不提 CMakeList.txt 这个文件,正是这个文件,提供了这些信息,换句话说,如果没有 CMakeList.txt ,我们就不能使用 cmake 。有人又会问,如果不用 cmake ,可以编译 vtk 吗?那当然可以,比如在 vc 中,可以建立一个新的工程,把文件一个个往里面添加,编译选项也要自己加,在 linux 下,就自己写 makefile ,当然,这个方法几乎是无法实现的,就算实现,在今后的开发过程中还会遇到很多麻烦。所以,还是乖乖用 cmake 吧!

安装前,需要获得下面的文件,我这里以 vtk5.0 为例,在 winxp+vc6.0 linux+gcc 下实现
linxu
   
预安装 gcc3.0
vtk-5.0.0.tar.gz     vtk
的源码
vtkdata-5.0.0.tar.gz   vtk
例子所需要的数据
cmake-2.4.3-Linux-i386.tar.gz   cmake
程序,现在从官网上下载,是免编译的

windows

预安装 vc6.0
vtk-5.0.0.zip    vtk
的源码
vtkdata-5.0.0.zip  vtk
例子所需要的数据
CMSetup243-win32.exe   cmake
安装程序
上面不同系统下, vtk 源码以及 data 其实是一样的,只不过使用了不同打包工具。另外, cmake 版本的选择是根据 vtk 版本来定的,比如 vtk5.0 所需要的最低 cmake 版本好像是 2.0 ,这里我们索性用更新的 2.4

三、 windows 下的 vtk 安装
1
、安装 cmake
这个应该很简单吧, windows 下安装软件是傻瓜化的,运行 CMSetup243-win32.exe ,不停地点击下一步就行了
2
、解压两个压缩包,建立所需文件夹
我不喜欢直接在源码里编译,而是另外建立一个 bin 文件夹。比如我把 c:/vtk/ 作为我们的主目录,将 vtk 源码解压在 vtk5.0 这个文件夹中,把 data 解压在 vtkdata 这个文件夹中,再建立一个空的文件夹取名为 bin 。注意, ./vtk5.0 下面,应该就是一大堆文件夹和文件, ./vtkdata 下面应该也可以发现几个子文件夹。

3
、运行 cmake
首先,将源码和编译工作目录两个目录添好,在这个例子中, sourse code 目录是 c:/vtk/vtk5.0/ build 目录是 c:/vtk/bin/
再按 configure 按钮, cmake 软件会让你选择需要使用的编译器,这里我们选 vc6.0 ,然后, cmake 就会对系统进行扫描了,停下来之后,我们就可以修改 cmake 选项了。
修改 cmake 选项。这个环节还真不好说,一般 vtk 的初学者只需要用默认设置就行了。我只提醒一些比较重要的选项:
build_examples:
就是询问是否编译 vtk 中的例子,如选则 on ,就要花时间把 vtk 的例子编译一遍,我一般不选
build_testing: test code
就是 vtk 开发者用来测试 vtk 代码的一些测试代码,我们常常把它们当成学习 vtk 的例子,与 build_examples 类似,是否编译他们,看个人喜好。

build_shared_libs:
如果设置为 off ,就只会生成 lib 文件,用于开发肯定是够了。如果设置为 on ,将会多生成 dll 文件。他们的区别不是我这里说得清楚的,反正如果用静态库编程,应用程序可以独立运行,尺寸也比较大,如果用动态库编程,应用程序必须找到动态库才能运行,但尺寸可以做得比较小

cmake_install_prefix:
这个比较重要,就是以后要安装 vtk 的路径。 有些人又要问,我编译完了不就可以用 vtk 了吗,为什么还要安装?对,不安装其实可以,安装的好处就是可以从 1G 多的文件中提取出 .h .lib .dll 等精华,安装在指定目录下,并修改系统环境变量

vtk_data_root:
一般地, cmake 可以自己找到 vtkdata 的路径,但如果没有,把 c:/vtk/vtkdata/ 填上即可,告诉 cmake vtk 需要的数据都在哪里

vtk_use_parallel:
对于想用 vtk 做并行计算的朋友,要把这个选上,对于只想学学 vtk 的,保持默认 off

vtk_use_guisupport:
很多人把 vtk 安装好了,却无法运行 vtk 中与 mfc 混合编程的例子,提示错误都是缺少 vtkmfc.lib ,问题就出在这个选项,我们必须把它设置为 on ,再次 configure 之后,会出现一个新的选项 vtk_use_mfc ,把它也设置为 on 就行了。

提示:在 cmake 中,有些选项是依赖于另一些选项的,比如 vtk_use_guisupport vtk_use_mfc ,当我们禁用 vtk_use_guisupport vtk_use_mfc 是看不到的。

修改完 cmake 选项以后,不停的按 configure 按钮,直到没有选项显示为红色,而且此时, ok 按钮可用,点击 ok 按钮,就可以生成 vc 的工程文件了。

4
、用 vc6.0 编译
vc6.0 打开 bin 目录下的 vtk.dsw 文件,因为文件很多,打开速度会有些慢。打开后,直接 build 。编译的用时和计算机性能,以及 cmake 中的一些选项有关,一般 1 个小时内可以完成。结果保存在 ./bin/bin 目录下。
编译也会出现不成功的时候,就要看编译器提示的错误类型来处理了!

5
、安装
vc6.0 打开 bin 目录下的 install.dsp 文件,不用理会提示的错误,直接 build 。编译结果就会安装在 cmake_install_prefix 设定的目录下。 这个时候,把 c:/vtk 目录删除都行。当然,建议保留,也许以后还要更改 cmake 选项,再次修复编译呢。 cmake 会检查到改动,只处理改动过的地方,没有改动过的就不要重新编译了。

四、在 linux 下的 vtk 安装
linux
下安装和 windows 下安装思路是一样的,我这里假设你已经基本熟悉 linux 的基本操作。

1
、安装 cmake
现在从官方网站上下载的 cmake 是免 编译的,我们可以直接在 cmake 源码的 bin 文件夹下找到 ccmake 这个可执行文件。就算没有编译,自己动动手,编译一下吧。另外,最好把 ccmake命令加入到系统可搜索的范围内,这样就能直接运行ccmake命令了。
2
、解压两个压缩包,建立所需文件夹
window 下安装,指定一个主目录,比如 ~/vtk/ ,建立三个文件夹,解包。
3
cmake
cd ~/vtk/bin/
ccmake ../vtk5.0
修改 cmake 的选项也参考前面 windows 下的 vtk 安装,因为 linux 下的 cmake 是文字界面,所以操作起来不直观,功能还是没有少的。
4
编译
cd ~/vtk/bin/
make
make
命令可以看成是 gcc 编译器调用 makefile 文件,进行编译
5
安装
cd ~/vtk/bin/
sudo make install
这里之所以用 sudo ,是因为一些文件的读写需要 root 权限
五、总结
学习 vtk 最好的教材是 vtk user guide ,最好的解决的难题的方法是通过 vtk mail list qq 、论坛、 google 等方式。
 

你可能感兴趣的:(Computer,Graphics)