blenderでmantaflowで作ったメッシュを表示する
mantaflowは流体シミュレーションのフレームワークです.計算された流体のメッシュをblenderで読み込み,表示する方法のメモです.blenderにも流体シミュレーションを行い,キャッシュを保存しておくbake機能はありますが,他の方法で生成されたメッシュを読み込むきちんとした機能はないようです.しかし,bakeされたファイルのフォーマットに合わせてファイル名を付けてやると,表示することができます.
環境は以下の通りです.
- windows10
- mantaflow 0.7 prebuilt binary
- blender 2.78
mantaflowのインストール
windowsの場合,ビルド済みのバイナリが配布されています.各種dllも同梱されていますが,シーンファイルを読む際にpythonのライブラリがないとエラーが出るみたいです.そのため,python2.7系をインストールしておきます.mantaflowを起動するとシーンファイルの場所を聞かれるので,同梱されている適当なシーンファイルを選び,GUIが表示されれば成功です.
メッシュを作る
同梱のfreesurface.pyからメッシュを作ってみます.メッシュを保存するためには,シーンファイルを少しいじる必要があります.freesurface.pyの62行目あたりにあるmesh.save('phi%04d.bobj.gz' % t)
のコメントアウトを外し,ファイル名を'fluidsurface_final_%04d.bobj.gz'
に書き換えます.結果としてファイルは以下のようになります.
if (dim==3): phi.createMesh(mesh) mesh.save('fluidsurface_final_%04d.bobj.gz' % t)
そのあとmantaflowでfreesurface.pyを読み込むと計算されたメッシュが連番の.bobj.gz形式で保存されていきます.ちなみにbobjはバイナリ形式のobjファイルみたいです.