一、ASSIMP介紹
Assimp是Open Asset Import Library(開放的資產導入庫)的縮寫。Assimp能夠導入很多種不同的模型文件格式(並也能夠導出部分的格式),它會將所有的模型數據加載至Assimp的通用數據結構中。當Assimp加載完模型之後,我們就能夠從Assimp的數據結構中提取我們所需的所有數據了。由於Assimp的數據結構保持不變,不論導入的是什麼種類的文件格式,它都能夠將我們從這些不同的文件格式中抽象出來,用同一種方式訪問我們需要的數據。1
- 可導入格式
常見的交換格式
- Autodesk ( .fbx )
- Collada ( .dae )
- glTF ( .gltf, .glb )
- Blender 3D ( .blend )
- 3ds Max 3DS ( .3ds )
- 3ds Max ASE ( .ase )
- Wavefront Object ( .obj )
- Industry Foundation Classes (IFC/Step) ( .ifc )
- XGL ( .xgl,.zgl )
- Stanford Polygon Library ( .ply )
- *AutoCAD DXF ( .dxf )
- LightWave ( .lwo )
- LightWave Scene ( .lws )
- Modo ( .lxo )
- Stereolithography ( .stl )
- DirectX X ( .x )
- AC3D ( .ac )
- Milkshape 3D ( .ms3d )
- *TrueSpace ( .cob,.scn )
動作捕捉格式
- Biovision BVH ( .bvh )
- *CharacterStudio Motion ( .csm )
圖形引擎格式
- Ogre XML ( .xml )
- Irrlicht Mesh ( .irrmesh )
- *Irrlicht Scene ( .irr )
遊戲文件格式
- Quake I ( .mdl )
- Quake II ( .md2 )
- Quake III Mesh ( .md3 )
- Quake III Map/BSP ( .pk3 )
- *Return to Castle Wolfenstein ( .mdc )
- Doom 3 ( .md5* )
- *Valve Model ( .smd,.vta )
- *Open Game Engine Exchange ( .ogex )
- *Unreal ( .3d )
其他文件格式
- BlitzBasic 3D ( .b3d )
- Quick3D ( .q3d,.q3s )
- Neutral File Format ( .nff )
- Sense8 WorldToolKit ( .nff )
- Object File Format ( .off )
- PovRAY Raw ( .raw )
- Terragen Terrain ( .ter )
- 3D GameStudio (3DGS) ( .mdl )
- 3D GameStudio (3DGS) Terrain ( .hmp )
- Izware Nendo ( .ndo )
- 可導出格式
- DAE (Collada)
- STL
- OBJ
- PLY
- X
- 3DS
- JSON
- ASSBIN
- STEP
- glTF 1.0 (partial)
- glTF 2.0 (partial)
- 3MF ( experimental )
- FBX ( experimental )
二、生成ASSIMP工程
-
下載assimp源碼
https://github.com/assimp/assimp -
解壓並創建build文件夾
-
生成工程
三、編譯工程
-
打開VS2015 x64 本機工具命令提示符
-
在提示符打開工程位置
提示符中輸入以下命令cd D:\workspace\assimp-master\build
-
編譯工程
提示符中輸入以下命令msbuild Assimp.sln
編譯完畢:
-
安裝工程
提示符中輸入以下命令msbuild INSTALL.vcxproj
安裝完成:
四、導入ASSIMP庫
-
在pro文件中添加頭文件及庫
# 外部庫根目錄 LIBRARY_ROOT_PATH = D:\Libraries\VS2015x64 # ASSIMP庫 ASSIMP_PATH = $$LIBRARY_ROOT_PATH\Assimp INCLUDEPATH += $$ASSIMP_PATH\include LIBS += -L$$ASSIMP_PATH\lib LIBS += -lassimp-vc140-mtd
-
在項目環境中添加動態庫路徑
項目倉庫
https://github.com/Jelatine/JellyCAD