OpenVDB For Windows

OpenVDB 是夢工廠開源的體素數據格式庫,雖然是開源的,可是對windows 的支持很是很差。若是想在windows上搞體素的話須要花一番功夫。寫一個總結,編譯中須要注意的地方。過兩天整理好會寫一個bat文件來一次性搞定配置。windows

VS工程的創建就是把源代碼和頭文件按照文件夾的目錄結構加到VS的空項目裏就行,能夠用CMake生成更加方便,目前測試VS08 和 VS 10 都能正確編譯, 但你的依賴庫和OpenVDB最好使用同一版本的VS編譯器,不然編譯連接會出錯。單元測試

OpenVDB依賴庫:
•OPENEXR
•TBB
•Zlib
•CPPUnit(For unittest)測試

TBB直接網上能夠下載編譯好的lib,是動態連接生成,連接到你的工程便可,其餘的庫本身在windows上編譯就能夠,注意OPENEXR若是是靜態編譯的請在工程的編譯選項里加入OPENVDB_OPENEXR_STATICLIBorm

若是有連接錯誤,那基本上都是代碼生成的時候/MT方式和/MD方式選擇不對,檢查你的依賴庫的生成方式,好比都是靜態生成,就都選成/MT。編譯器

預編譯選項:全部的預編譯選項都在Platform.h 和PlatformConfig.h裏。比較重要的有:it

  OPENVDB_PRIVATE:定義了這個宏才能把VDB的API導出。編譯

  OPENVDB_STATICLIB: 若是你須要把OPENVDB 編譯成靜態庫請必定加上該選項,默認OPENVDB會編成dll,另外該選項還必須在引用VDB的API的工程中定義,好比   OPENVDB的單元測試form

  OPENVDB_DLL:編譯成dll時須要定義,否則生成的dll會沒有lib文件。test

  OPENVDB_OPENEXR_STATICLIB:若是OpenExr是靜態的,必須加上。配置

編譯單元測試須要的CPPUnit庫下載源代碼以後包含了VS的工程文件,直接打開轉換到你的VS版本就能夠生成所須要的庫文件,仍是須要注意/MT和/MD的生成方式選擇,必定要一致。Unittest 工程須要連接OpenExr。

若是你要編譯OpenVDB自帶的viewer,在windows下是比較困難的,首先請把全部頭文件換成glew,而後注意請使用glfw2.0連接glfw,glfw3大幅度修改了API ,另外請在每一個viewer的cc文件以前加入 #include <stdlib.h>

相關文章
相關標籤/搜索