Blenderの復活

このエントリーをはてなブックマークに追加
107名無しさん@お腹いっぱい。
まだDLしてないから正確性はしらね。

BF Windows 2006/02/27 : fluid sims updated
http://www.blender.org/forum/viewtopic.php?t=8263&sid=c852282318579d2b90c389488b7734d3

こんにちは新しいコンパイル結果です。

NTが彼の流体シミュレータを更新した。

でかいコミットですまん。たくさんの問題を平行して修正中・・・んでこのコミットに入っているのはこんなん: ソルバーの更新(動くオブジェクトとか)、IPOとの統合、改良レンダリング(モーションブラー、滑らかな法線)、最初のパーティクルテスト。
詳細↓

■■ソルバーの更新■■
◆動くオブジェクト
 比較的シンプルなモデルを使うこと。まだちゃんと最適化されてないから。 水に落ちる箱とかはOK。 動くグラスの中の水はまずいと思う。
シミュレーションの計算時間はmeshの三角ポリの数で変わる。 meshを増やすと遅くなるぜ。
◆obstacle(障害物) settingsの追加。
 noslip(従来どおり)、free slip(壁にそって自由に動く)、part slip(2つを混ぜたもの)。
・obstacle settingsはdomain(計算対象空間)の壁部分にも追加。domainの6つの面もやはりobstacleなのだ。
-templates廃止。これで例えばmac用コンパイルが楽になる。linuxも同様。最終的にparser(といくつかの他のコード)も廃止。
 今のシミュレーションではデータ転送に内部APIしか使わなくなった。
-不要なファイルをいくつか削除。GUIに3つのボタンが必要になった・・・これはもうちょっと見直すべきだ(domainオブジェクト用のパネルを追加することになるかも)
108名無しさん@お腹いっぱい。:2006/03/01(水) 00:50:33 ID:YAO5Jt2p
BF Windows 2006/02/27 : fluid sims updated
その2

■■IPO■■
◆アニメーションできるパラメータ:
 domainに対するvisconsity粘り気、time、gravity重力。
 Blenderオブジェクトにある普通のtime IPOと対照的に、この流体シミュの時間軸は、時間の進む単位を変更する。
 定数1だと効果なし。0に向かって小さくすると、遅くなる。 大きくするとシミュレーションがスピードアップ。 (長い時間単位にすると計算が遅くなる。)
◆visconsity IPOは選択された粘り気の因子。(もいっかい言うが1=効果なし)
-流体シミュが有効なオブジェクトに対し新しいIPO typeが登場。
 Inflow(流出源)オブジェクトは流出速度にvelocity速度チャネルを使える。
 Obstacleとin/outflowのオブジェクト3種は、シミュレーション中にオン・オフ可能(オンは、IPOI>0、オフは同<0)
◆移動・回転・スケール変更をこれら3種に行うのは、通常のBlenderチャネルからエクスポートされる(Loc・dLocなどのチャネル)。

■■パーティクル■■
◆まだ実験なのでリリースでは無効にしてある・・・これはある時点で小さな水しぶきをモデリングするのに使うもの。
 ''realworld''サイズとパーティクル生成の設定に依存。 パーティクルはシミュレーション中に生成される(_particles_X.gzファイルに格納)。
◆arbitaryな(それぞれの?)オブジェクトに対してパーティクルフィールドを有効にするとこれがロードされる。Haloマテリアルを設定すべき。
 各フレームごとに〜meshのロードと同じく〜パーティクルシsツエムはシミュレートされたパーティクルの位置を読み込む。
◆レンダリングでは、part->rtフィールド(Renderingコンテクストのデバッグ用フィールド?)を【勝手に使った】。
 これ以外使い道なかったしうまく動いてるみたいだ。流体シミュのパーティクルはそのサイズをそこに格納する。
109名無しさん@お腹いっぱい。:2006/03/01(水) 00:52:03 ID:YAO5Jt2p
BF Windows 2006/02/27 : fluid sims updated
#その3

■■Rendering■■
◆流体シミュのパーティクルはスケール変更されたサイズとアルファ(透明度)の値を使い、変化に富んだ外見になる。
 "convertblender.c"ファイルで、流体シミュのパーティクルシステムは、p->rtフィールドがサイズを大きくし、「より小さなパーティクル」透明度を下げる。
 流体シミュの設定で、influenceフィールドをゼロに設定するとどこでも同じ透明度・同じサイズになる。 高い値ではずっと違ってくる。?
◆滑らかな法線:
 変更されていない流体mesh(例:Subdivide無し)の法線は、ソルバーによって計算され、使われる。
 これは単純に、convertblender.cで法線の再計算を無効にすることで実現した。(関数calc_fluidsimnormalsが、calc_vertexnormalsの代わりに他のメッシュの初期化を行う)。
 これは他のメッシュでも使われる。例えば、Modifierで法線を変更した場合・・・
◆もうひとつの変更は、流体シミュのメッシュは、シミュレーション中、イメージベースのモーションブラー用に計算されたvelocities速度を読み込む。
 これはload_fluidsimspeedvectorsで初期化される。 vectorパスのために(DerivedMesh readBobjgzの通常のロード中に、これらもロードされる。)
 (流体の)生成と読み込みは設定画面で切り替えできる。Vectorパスは現在Fluidsimのメッシュを三回読み込む。 これは最適化すべきだ。
110名無しさん@お腹いっぱい。:2006/03/01(水) 00:53:01 ID:YAO5Jt2p
#BF Windows 2006/02/27 : fluid sims updated
#その4

■■サンプル■■
◆滑らかな法線 vs 1回Subdivide
http://www10.informatik.uni-erlangen.de/~sinithue/temp/v060227_1smoothnorms.png
http://www10.informatik.uni-erlangen.de/~sinithue/temp/v060227_2subdivnorms.png
◆流体シミュのパーティクル、サイズ/透明度の影響ゼロ:
サイズ影響=1:
http://www10.informatik.uni-erlangen.de/~sinithue/temp/v060227_4particlessize.png
◆サイズ & 透明度の影響 = 1
http://www10.informatik.uni-erlangen.de/~sinithue/temp/v060227_5particlesalpha.png
◆モーションブラとパーティクルを使った標準的な水滴。
http://www10.informatik.uni-erlangen.de/~sinithue/temp/elbeemupdate_t2new.mpg
(こっちは、無しだとどう見えるか
http://www10.informatik.uni-erlangen.de/~sinithue/temp/elbeemupdate_t1old.mpg
◆他のinflowアニメーション(移動、有効/無効)(それに強力なモーションブラー)
http://www10.informatik.uni-erlangen.de/~sinithue/temp/elbeemupdate_t3ipos.mpg

■■修正すべき点■■
◆domainの回転とスケール変更がspeedベクトルをおかしくする
◆マルチスレッド化のためのSDLコードの除去。 pthreads使うのもいい?
◆wikiドキュメントの更新
◆レンダリング結果へのクールなエフェクト。 コースティクスをフォトンマップで、モーションブラーをパーティクルにも。(そうだ、これはすげぇクールに違いない!)