2009年5月10日日曜日

etc - .protoとか

休日ログ。

Blenderのファイルフォーマットは

Blender SDNA 2.49
Internal SDNA structures
http://www.atmind.nl/blender/blender-sdna-249.html




Blender.jp - ニュース
Blenderのファイルフォーマットを解説する 'The mystery of the blend'
http://blender.jp/modules/news/article.php?storyid=2338


に挙がってましたが、

・いままでDNAのソースコード見るしか無い状態だった
・いままで文書化されていなかった

ということです。

構造自体はバイナリで、.protoみたいな仕組みと似ているのは似ているんですが

・フォーマットと実装の分離がされていない
・初期化処理やアクセッサを拡張するたびに自作しないといけない
・シリアライズっていうかほぼ全部手作業
・複数言語に容易に対応できない

など、圧倒的に.protoのほうが有利な点がいくつかあります。


-----------------------

そこで、とりあえず自分が必要なデータを、DirectXで使うように変換して、.protoで出力しようとしてみました。



これは1年ほど前に作った予定表ですが、去年の12月の時点で、上のでかい青四角と、下のでかい青四角は9割くらい出来てました。赤矢印が出来てなかった程度です。

3Dって何?っていう超初心者のときから作り始めたので、目に見える形で2段階でXMLっぽく出力して、『石橋を叩いて渡って』ました。
でも、技術は、選んだ時点で、無理なことは無理だし、遅いものは遅いのです。

---------------

前置きが長くなってしまいましたが、早速.protoをprotocでコンパイルして、出来たヘッダとソースをBlenderにBlendしました。事前に小規模なコードで動くのを確認済みです。

ビルドすると・・・・大量のエラーがっ。なんか嫌な予感が・・・。

そういえばprotocol buffersは ランタイムライブラリが MD または MDd でビルドされてます。
古い歴史があるBlenderは、いまだに MT または、 MTd です。
(MDにすると、x86なんたらライブラリを追加インストールしないといけない場合があるので、俺も自アプリはMT使ってます)

そこで、protocol buffersをMT/MTdでビルドすると、MT(リリース)のほうだけビルド出来ました。

Blenderのほうを再びビルド・・・すると、デバッグもリリースも通るんですが、デバッグだとメモリ関連の実行時エラーで起動しやがりません。リリースは、.pbの出力(適当に文字列ぶち込んで吐いただけのもの)まで成功。

ロジック部分はXMLの出力(完成済み)をそのまま使うので、こうなったら目視デバッグでリリースビルドだけで何とかしてみようか・・・。

--------------

続いて stickam で、前の波のやつを、GLSLMaterials表示で低負荷でやりたいというのがあり、

法線マップに落とし込んで、法線マップのテクスチャ座標移動させて、2枚重ねると、結構リアルな波っぽく見える

ということで、やってみるものの、テクスチャのofsがアニメーション時に反映されないから、コード何とかするしか無さそうな感じに。

マテリアル情報は何一つ更新されるようになっていないので、難航中。

--------------


結局、この2日、初音ミクのエロ画像くらいしか出来てない。なんてこった。

2 件のコメント:

匿名 さんのコメント...

エロ画像ってww
必要でしたっけw

uimac さんのコメント...

クリプトンの規約とかあるので、胸や下半身はおろか、パンツの隙間から中が見えないようにわざわざ伸縮性にしていたりするんですが、エロ画像に絶えうるモデルって難しいんですよね・・。

つまり、3Dモデリングの成長とモチベーション維持のためには、適度のエロは必要不可欠なのです!

ちなみに大したものでは無いですが、マイピクになると漏れなくご覧になれますw