2017年04月17日

独自フォーマットは無理でした

独自フォーマットを作っていましたが、1ヶ月以上作業してもメッシュひとつ描画できなかったため、久しぶりに心が折れてしまいました。
Blenderからデータを取得してバイナリに書き出すまでは順調に思えたのですが、そのデータを使ってモデルを描画してみたところ、頂点インデックスがズレたような描画結果になっていて、その原因の特定ができずに作業が長期に渡って停滞しまい、モチベが尽きてしまいました。
書き出したデータが間違っていたのか、インポータでやらかしたのか、はたまたエンジンの不具合なのか、原因は結局分からずじまいですが、まあ、この問題が解決したとしても、この先に発生するであろう全ての不具合でこの3つの全てを疑いながら作業するのは重労働過ぎると思ったので、原因を解決する気力も起こらず諦めてしまいました。。

まぁ残念というか悔しい結果に終わってしまいましたが、モデルのエクスポートから描画までを通して作成したことはかなり勉強になったかと思います。今までAssimpに頼りきっていた部分をかなりクリアにできたことは今回の収穫といえると思います。とでも言わないとやってられない気分です(爆
まぁ勉強になったのは事実で、モデルデータ周りのことは本当に知らないことが多かったです。特にVBO対応の頂点属性データを作るのがこれほど難しいことだとは知りませんでした。個人的にはアニメーションよりはるかに難しく思いました。いい勉強になりました。
気力が回復して次にまた独自フォーマットに挑むことがあるなら、そのときは結果が出せそうな気がします。とでも言わないとやってr(ry


というわけで、今回は進捗が全くありませんでした。この1ヶ月で書いたコードは3000行くらいありましたが、すでに全て退場しています。Blenderのエクスポータは1500行の本編と__init__.pyというけっこう本格的なスクリプトを書きましたが、まぁこれはいつか掘り返して使うかもしれないのです。貴重なBlenderPythonの資産として今後に活かせそうな気がします。

ちなみに、独自フォーマットを作ろうとした理由ですが、Assimpがサポートしていない物理剛体やIKなどのデータを調達するためでした。ついでにAssimpも卒業したかったのですが、うん、甘かった。
足りないデータの調達は、それ専用のエクスポータを作成するつもりです。
最初からこうしとけばよかったかも。

今回はこんな感じです。
では。
posted by gency at 03:45| Comment(0) | 3DProgramming