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)