Blender2.5 Smokeシミュレーションを試す。

Blender2.5のSmokeを弄り始め。
現状の所感としては、実制作ではパーティクル+ビルボードテクスチャ使った似而非Smokeの方が実用的だと思います。
リアルな挙動を示す煙が必要な時には頼もしい相棒になってくれるかも。

毎度とっつきにくい設計なので、備忘録がてら、記事の続きにてSmokeシミュレーション結果をレンダリングするまでの流れをまとめます。
試用時のBlender2.5のビルドは28733、Intel Mac用64bit版です。

  • ドメインになるオブジェクトと、煙の発生元となるパーティクルをもつオブジェクトを設定。後者は前者の中に配置します。
  • シミュレーションプロパティを開いて、ドメインにSmoke Domeinを設定、パーティクルを設定したオブジェクトにSmoke inflowを設定。この段階で3D Viewにプレビューが出て来ます。現状だとGLSL表示だと重なり方がおかしくなるみたい。
  • レンダリング結果にはまだ反映されません。
  • 以下、レンダリング結果に反映させる一例。ドメインオブジェクトのマテリアルをVolumeにしてDensityをゼロに下げます。
  • 続いてVoxel Dataテクスチャ経由でSmokeシミュレーションの密度を反映させます
  • Voxel Dataテクスチャの影響先をDensityにします。
  • やっとレンダリング結果にでてきた。

Volumeシステムの実装とSmokeシミュレーションの実装は、各々が汎用性あるシステムとして実装されてる訳ですね。
この連携の理屈を理解せずに3D Viewの表示にまどわされるとあたふたできます(しました^q^)。

現在Blender2.5 ビルド28733 Intel Mac用64bitビルドで遊んでますが、パーティクルの挙動や煙の設定を変更しても反映されません。キャッシュ周りの実装がまだ不完全なのかなぁ。一度ドメイン削除すると変更が反映されるんですが、現状では試行錯誤しにくいので今後のバージョンアップとドキュメント整備に期待したいところです。

続いてPoint Densityの使い方を調べてみます。現状、なんか勘違いしてるのかレンダリング結果に出て来ないんだよなぁ。どういう仕組みなんだろ。。