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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构