随笔 - 25  文章 - 10 评论 - 11 阅读 - 10万
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

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   cinger  阅读(8276)  评论(0编辑  收藏  举报
编辑推荐:
· 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语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示