牛骨文教育服务平台(让学习变的简单)
博文笔记

如何加快VTK进行体绘制的速度

创建时间:2014-04-11 投稿人: 浏览次数:2079
我们都知道VTK(Visualization Toolkit)是一个开源的免费的软件系统,主要用于三维计算机图形学,图像处理及可视化。目前本人主要依靠VTK进行医学影像三维重建的工作,那么在此过程中最令人关注的就是交互的流畅性问题,目前比较流行的就是采用GPU进行加速,对应到VTK中呢就是利用vtkGPUVolumeRayCastMapper,也许你使用了此类但是体绘制效果仍然不理想,那么我相信你可以重本文中得到一些启发。

(1)第一种解决方法:

1.首先安装微软Directx SDK,下载地址:http://www.microsoft.com/en-us/download/details.aspx?id=10084,注意此版本是February 2010,其它版本没有测试过。对VTK有点基础的人都知道VTK是利用OpenGL进行渲染,那么我们为什么要安装Directx SDK呢,在此需要说明的是Directx SDK是用来检测GPU的信息的,而不用来绘制。

2.然后通过cmake编译VTK,注意:configure的时候一定要选上BUILD_TESTING此选项(后边有用),另外需要注意的是Directx SDK对应的选项时候已经更新(见下图2),然后不断的configure,generate直到没有错误产生。然后通过你的Visual Studio来build就行了,OK你现在可以吃饭去了,呵呵! Build完之后找到你的bin目录也就是你的cmake的Where to bui-ld binaries那个目录,然后进入该文件夹下bin/Debug或者bin/Release目录(这是由你的build选项决定),找到RenderingCxxsts.exe这个可执行文件,然后在命令行中运行,然后选择TestGPUInfo选项检查GPU信息,如果出现的数字不为0(见下图3),那么你的vtkGPUVolumeRayCastMapper应该就会变得很快。如果还不行的话,那么可以采用第二种方法
图1
图2
图3

(2)如果第一种方法仍然不成功的话,那么你可以考虑使用vtkSmartVolumeMapper,而不要使用vtkGPUVolumeRayCastMapper,在VTK附带的demo例子中有个示例可以参考,打开你的VTK源文件下的ExamplesVolumeRenderingCxx目录,你可以看到有三个文件:

其中GPURenderDemo就是采用vtkSmartVolumeMapper来进行体绘制的,你可以通过cmake和VS2010编译一下这个程序,然后载入相应的图像,相信会给你带来不小的惊喜!




            
                
				
			
		
        	
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。