Assimp

提供: Akionux-wiki
Share/Save/Bookmark
移動: 案内検索

概要

Assimpは3Dモデルデータフォーマットのインポート・エクスポートライブラリである。 スタンダードなフォーマットはもちろんのこと、インポートでBlenderファイル.blender、エクスポートにjsonに対応していたりと、豊富なフォーマットに対応している。

ここでは、Linux Mint 17 Qiana環境でAssimp及びPyAssimpのソースコードからインストールした手順を記す。

Assimpのダウンロードからインストール

git clone

まずgit cloneでダウンロードする:

git clone https://github.com/assimp/assimp.git

私がgit cloneした時点での直近のコミットは、

$ git log
commit fddae20cb7098850cc5eaf20b07626ca84526afa
Merge: 7ff7b78 ed124cc
Author: Alexander Gessler <alexander.gessler@gmx.net>
Date:   Wed Aug 20 19:29:44 2014 -0700

    Merge pull request #338 from jdduke/fast_atof_fix_final
    
    Gracefully handle NaN/inf values in fast_atoreal_move

である。

ドキュメントの生成

doxgenでドキュメントを生成する:

cd assimp/doc
doxgen

これでassimp/doc/AssimpDoc_Html/index.htmlにドキュメントのHTMLができるので、必要に応じて参照する。

Makefileの生成

cmake -G 'Unix Makefiles'
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
CPPUNIT_LIBRARY
    linked by target "unit" in directory /home/akio/workspace/assimp/test

CppUnitというライブラリが必要らしいのでインストールする:

sudo apt-get install libcppunit-1.13-0 libcppunit-dev

改めてcmakeする:

$ cmake -G 'Unix Makefiles'
-- Building a non-boost version of Assimp.
-- Looking for ZLIB...
-- checking for module 'zzip-zlib-config'
--   package 'zzip-zlib-config' not found
-- Found ZLIB: optimized;/usr/lib/x86_64-linux-gnu/libz.so;debug;/usr/lib/x86_64-linux-gnu/libz.so
-- checking for module 'minizip'
--   package 'minizip' not found
-- Configuring done
-- Generating done
-- Build files have been written to: /home/hoge/workspace/assimp

ビルド・インストール

make
sudo make install

PyAssimp

PyAssimpはassimpのPythonバインディング。 今回はソースコードからインストールするので、aptでパッケージをインストールしている場合は消しておく:

sudo apt-get remove python-pyassimp

git cloneでダウンロードしたassimpフォルダのport/PyAssimp/にあるのでsetup.pyを使ってビルド・インストールする。

cd port/PyAssimp/
chmod u+x setup.py
python ./setup.py build
sudo python ./setup.py install

動かしてみる

assimp/port/PyAssimp/scripts以下にサンプルスクリプトがある。

3d_viewer.pyで3Dモデルデータを表示してみる:

cd assimp/port/PyAssimp/scripts
./3d_viewer.py 3Dモデルデータのパス