Hapt是maximo等在2010年发布的一篇论文,Hardware-Assisted projected Tetrahedra ,关于四面体投影的。

作者同时在Google code上公布了源代码。我对linux不熟悉,但是为了搞清HAPT的渲染管线,我还是努力配置并运行了HAPT。

 

我用的操作系统是Ubuntu lucid。

首先在 Google code上下载源代码。搜索hapt就可以得到。因为用到了cuda,所以我首先安装了cuda的驱动,toolkit和SDK。

安装cuda driver花了我很长时间。安装过程可以参考下面的链接

http://wiki.accelereyes.com/wiki/index.php/Installing_CUDA_Under_Ubuntu_10.04

还有个论坛帖子总结了安装中遇到的很多问题。

http://forums.nvidia.com/index.php?showtopic=167422

后来又有人做了一篇中文总结

http://www.linuxidc.com/Linux/2010-09/28563.htm 

按照这三篇帖子,你肯定能安装成功,但是要花一些时间。

 

 这时候编译源代码,你会遇到一堆的错误。我也是很偶然才发现,他们用到了他们自己写的一个库,也是今年更新的,也是在Google code上,叫做lcgtk。lcg就是他们的实验室,tk是toolkit的缩写。这下大家明白了吧。

下载了这个库之后,要自己编译一些。首先进入GL文件夹,make一下。然后进入 glslKernel文件夹,在make一下。就会在lib文件夹下生成两个库文件。这是后来连接用的。顺便说一下,按照hapt源代码里要求的,要把这个库放在home根目录下。还有一点说明,GL文件夹里主要是生成了GLee,如果你想用你的操作系统里的最新版本的GLee,就不要生成这个自带的GLee库,而且要把GL目录改个名字,让HAPT不要找到这个GLee。我在操作时就犯了这个错误,结果版本冲突,莫名其妙的生成了一大堆以pgl开头的函数的引用错误。

 

接下来,还要用到vcglib。可以参考它的tutorial

http://vcg.sourceforge.net/index.php/Tutorial

我并没有仔细看这个tutorial,只是通过给定的SVN把它下载下来了。 也把它放在了home根目录下。其实主要就是用到了trackmode和trackball两个文件。如果你最好编译hapt时,关于这两个文件编译有错误,你可以先单独编译他们,这样更容易定位错误。

 

 剩下的主要是路径和大小写的问题了,比如hapt把cuda的sdk安装在/usr/local下了,而sdk默认安装是在~/NVIDIA_GPU_Computing_SDK下,所以要调整一下Makefile文件。还要连接-lglee -lglut -lGL -lGLU注意大小写哦。最后我用的cutil库叫做cutil_i386,改名,搞定。编译成功。生产hapt的可执行文件。

 

如果你对我的这篇文章感兴趣,那么你一定是我的同行,有问题请联系,我会尽我所能帮助你。lixin#upc.edu.cn

 

posted on 2010-10-24 20:34  cinger  阅读(8248)  评论(0编辑  收藏  举报