Irrlicht、独自3Dメッシュ形式irrmeshを実装

Introducing the .irrmesh 3D file format (Irrlicht3d.org)

週末に私はIrrlicht svnの新機能をチェックしました。新ファイルフォーマット.irrmesh拡張ローダとmesh writerについてです。これでIrrlichtはお望みなら読み込んだ全てのメッシュを再び書き出せるようになります。私は.irrmeshファイルフォーマットと一緒にCOLLADA用writerも実装してチェックしました。

ここで.irrmeshとは何か?つまるところ、Irrlichtの静的メッシュ用内蔵ファイルフォーマットです。そう、Irrlichtはついに独自ファイルフォーマットを持ったのです。.irrmeshはxmlベースでほとんどIrrlichtの実装に依存しています。単体の頂点とインデックスは自身のタグを持たないところは、COLLADAフォーマットに似ています。.irrmeshファイルはIMeshインターフェースの内容をダンプしただけのものです。メッシュバッファのリスト、バッファ毎の1マテリアル、頂点とインデックスのリストが書き込まれます。このように.irrmeshは最良の対応ファイルフォーマットとなります。もし、巷で.irrmesh用エクスポーターが書かれ始めれば、これらはIrrlichtで100%正しく表示されるフォーマットだと確約されるでしょう。まだ、エクスポーターが存在しないですが、.irrmeshファイルを入手するのは簡単です。例えば、Irrlichtをコンバーターとして使用可能です。対応フォーマットのファイルを読み込み、新しいIMeshWriterインターフェースで再び書き出すのです。または、さらに簡単な方法として、次のirrEditリリースまで数日間待ち、これをコンバーターとして使いましょう。現時点のmesh writerは、.irrmeshとCOLLADAファイルをUTF-16エンコードのxmlファイルとして出力します。全てのテキストベースのファイルフォーマット同様、巨大なシーンではファイルサイズが肥大化します。しかし、私は近いうちにIrrlichtでUTF-8形式のxml出力をサポートして、このサイズを小さくする事を計画しています。勿論、アニメーションmeshのほうも、これに続いて対応します。

irrmeshファイルのデモを用意しました。example.irrmesh (94KB)

これはブログの右上にあるイメージのシーン(Irrlicht3d.orgのトップにある画像です)で、私がloaderとwriterでテストした初の巨大シーンファイルです。このシーンは約1万ポリゴンあり、loaderは今のままでも高速に読み込みをします。 ですが、まだ改善の余地がありです。

原文 - Nikolaus Gebhardt / 翻訳 - 屋森英樹

とうとう来ました!Irrlicht用の独自ファイルフォーマット。今回は固定メッシュにのみ言及されていますが、前回の記事にもあるようにアニメーションも独自形式を出力可能になるようです。各3Dアニメーションソフト用のエクスポーターが充実してくれることを祈りましょう。xファイルの方言不具合から開放される日も近い!?

それはそうと、多大な期待とは裏腹に、1.4は潜在的なバグが大量に混入しそうで不安です…。 これだけ派手に弄繰り回してますしね。

Share