Meshlab和VCGlib都是意大利国立研究院的作品,meshlab提供了大量的模型分析与处理的算法,而VCGlib建立了基础的数据结构及其遍历访问的算法,也提供了模型的基本处理算法。VCGlib是标准C++库写的,其提供了IO与封装OpenGL来显示。Meshlab的界面是用QT来写的,因此需要QT SDK的支持。
各软件的地址链接为:
(1)MeshLab源代码SVN:
https://meshlab.svn.sourceforge.net/svnroot/meshlab/trunk/meshlab
(2)VCGlib源代码SVN:
https://vcg.svn.sourceforge.net/svnroot/vcg/trunk/vcglib
(3)QtSDK
http://qt-project.org/downloads
目前由于vcglib的更新较大,与当前的meshlab不兼容了,目前用的是meshlab完整源代码包。如果兼容了,可以直接从SVN上获取meshlab与vcglib的源代码,需要注意的是,将从上面两个svn获取的源代码放在同一目录下,然后用下面介绍的相关步骤来编译就可以了。
下面就具体的基本配置介绍如下:
1. 准备软件
(1)MeshLab源代码,需要下载MeshLabsrc_AllInc_v1.3.2.tgz文件,由于本人试过分别从SVN上获取最新的meshlab与vcglib,会出现各种错误,vcglib更新变化还是比较大的,所以目前主要是函数的不兼容引起的。所以目前建议下载meshlab源代码完整包,包含外部依赖库、vcglib和meshlab。等meshlab与更新后的vcglib兼容后再用SVN导出两者的源代码。目前的最新整个版本为meshlabv1.3.2,下载地址如下:
http://sourceforge.net/projects/meshlab/files/meshlab
(2)QtSDK
http://qt-project.org/downloads
2. 安装QT SDK并编译MeshLab
由于MeshLab使用了许多开源的代码,都在external目录下,首先需要做的是编译该external工程,生成MeshLab所依赖的库。
(1)安装QTSDK,这就不用讲了,解压下载的meshlab源代码完整包,并解压,在解压的过程中可能会出现文件覆盖的提示,一定要选全否。
(2)编译meshlab目录下的external工程,生成依赖库,用QCreator打开external.pro,右键点击“构建”,注意不要点击绿色play符号,因为这是一个库,并不能生成可执行文件,不信你可以试试。
(3)打开meshlab目录下的meshlab_mini.pro,其中还有一个meshlab_full.pro,该工程包含了meshlab的全部功能,确认该mini工程为活动的项目(黑体加粗)。
(4)单击绿色play符号(绿色箭头),开始编译并运行,如果出现以下错误,请把src/distrib/plugins目录下的两个XML文件删掉,filter_measure和filter_mutualinfo。
ERROR:
Invalid parameter passed to C runtime function.
Invalid parameter passed to C runtime function.
terminate called after throwing an instance of'MeshLabXMLParsingException'
what(): Error While parsing the XML filter plugindescriptors: We are trying to load a xml file that does not correspond to anydll or javascript code; please delete all the spurious xml files
如果一切顺利,可以编译通过并运行meshlab了,至少在我这里是遇到了加红的两个可恶的东东。附个图:
辉辉
(FightingBull Studio)