VRエンジン作成日記

ひたすらVRエンジンを作っていきます

FBX、DAEフォーマットのパーサを修正した

FBX、DAEフォーマットのパーサを修正した。バージョン違いや、バイナリフォーマット・テキストフォーマットの違い (FBX) 等があって、ファイルの中からメッシュデータを抜き出そうとするだけでも、真面目に処理すると大変そうなことが分かってきた。

・FBXフォーマットの仕様について

github.com

DAEフォーマットの仕様書

www.khronos.org

FBXの方はAutodeskのサイトを見ても、SDKの使い方が紹介されているだけで、ファイルフォーマットの仕様書の形式では公開されていないようだった。Blenderの開発者の人がフォーマットの解説を書いてくれている。FBXは主に、ファイルフォーマットについて意識することなく、SDK経由で使うことが重視されているようだ。そのため、FBXを扱うためのC++用ライブラリが公式サイトから配布されている。

DAEの方は元々Playstation3用にソニーが開発していたそうで、今ではOpenGL等の標準化を行っているKhronosによってDAEフォーマットの仕様は管理されているようだ。上のURLに行くと、日本語でも仕様書を読むことができる。

どちらのフォーマットも、メッシュ以外のデータ (シーンの状態、カメラ・ライトの状態、レンダリングの方法、アニメーション等) も一緒に含めて配布することができる形式になっているらしい。

npmにいくつか、JavaScriptで実装されたライブラリが公開されているみたいだけど、いったん1から作ってみようと思う。