DirectXアプリに Blender 2.5のファイルをインポートするコード

投稿日時 2010年07月14日 | カテゴリ: スクリプト・プラグイン

B@rt氏による記事です。

DirectX10での .X ファイルフォーマットのサポート打ち切りにより、Blender のコンテンツを DirectX アプリに持ってくるのが難しく、もしくは不可能になりました。
Clemens Fehr氏はこの仕事を軽減する C++ コードを公開されています。

WorldObject *o = new WorldObject();
LoadBlenderFile("file.blend", &o->mesh, o->mtrls, o->textures, UV_DuplicateVertex);

Clemens氏いわく、

DirectX9では.Xファイルフォーマットの対応が組み込まれていました。.X ファイルを数行のコードで簡単に読み込むことができたのです。.X ファイルが blender や3ds Max、その他のフリーや低価格のツールなどのほとんどの3Dツールで対応されていたようで、一般的に好まれるフォーマットのようと思われました。






しかし実際に .X ファイルについて作業をし始めると、問題に遭遇することになります。私は DirectX で正しく動作する .X ファイルを Blender からエクスポートできたことがありませんでした。Mesh データがおかしいだけでなく、法線は異常で、方向は台無しに、UV 座標は動作しませんでした。

私の3Dアプリ内でモデルを表示するのに、私は Blender から UV マッピングのない.3ds でエクスポートし、その後、UV マッピングを他のツールで行い、最終的に UV マッピングされたモデルをそのツールから .X ファイルフォーマットでエクスポートせざるを得ませんでした。さらにこのアプローチは信頼性に欠けていたのです。

そしてマイクロソフト自身からこの .X ファイルフォーマットはとどめを刺されてしまったのです。彼らは .X ファイルフォーマットの対応を DirectX10で完全に放棄したのです。

これらすべてには本当にイライラしました。私は3Dグラフィックスの作品を試したかったのであり、私の時間をファイルフォーマットやインポート・エクスポートに浪費したくなかったのです。かつては実際に 3dsMax の購入を検討していましたが、単に値段が高すぎでした。さらにたとえ彼らのエクスポータが DirectX9でインポートできる X ファイルを生成したとしても、私のアプリをDirectX10に切り替えれば問題が発生します。また、放棄された技術に頼るのは良くないと感じていたりもしました。

そうこうするうちに、私は世の中には私のニーズに完全に合うような解決策はないのだと理解しました。私は Blender にこだわりたいと思っていたので、唯一の解決策は自分の手を汚し自分自身で何かを作ることだと思いました。


リンク
Importing Blender 2.5 Files in DirectX apps





Blender.jpにて更に多くのニュース記事をよむことができます
https://blender.jp

このニュース記事が掲載されているURL:
https://blender.jp/modules/news/index.php?page=article&storyid=3003