_581x100.png CGsyomei_583x102.gif 訪問者 無料カウンター ページビュー 無料カウンター

2010年02月16日

krakatoaのMagmaflowを使ってリアルフローの水をディティールアップする方法

krakatoa realflow.jpg

以前のエントリーでkrakatoaを用いた水しぶきの作例というのを紹介しましたが、自分もMagmaflowの勉強もかねてやってみました。結果は上のムービーのとおりで、かなりのポテンシャルを感じることができます。 ちなみにざっくり手順を説明すると、

1、リアルフローでシミュレーションするときにcompute VorticityをyesにしてVorticity(渦度)を同時に計算。

2、KrakatoaのPRT Roaderでシミュレーションしたパーティクルを読み込んでKrakatoa channel modifier (KCM) のマグマフローでVorticity(さらにforce,velocityチャンネルも追加。これらのチャンネルは勝手に出てるようです。)情報を元にパーティクルをカラーリング。

3、コンポでほしい要素を抽出して合成。

以上です。

 では順に説明していきます。まずはリアルフローでシミュレーションをする際に以下の画像の赤線の部分を確認してください。

RF_cap.jpg

ここがyesになっていないとVorticityがbinファイルに書き出されません。

 シミュレーションが終わったら今度は吐き出されたbinファイルをKrakatoaに持ってきます。PRT Roaderで読み込むだけでOKです。その次にモディファイヤリストからKrakatoa channel modifierを追加します。
KCM_add.jpg

 追加したらOpen MagmaFlow EditorをクリックしてMagmaFlowのエディターを開きます。開いたばかりの状態は以下のようになってますパーティクルは真っ白。
KCM_first.jpg

 次にIN:Channle:colorのフローターをクリックし、右に出てくるロールアウトのChannel NameリストからVorticityを選択。するとVorticityのデータを読み取ってそれがcolorに出力されるのでRGBのような色が付きます。最初にお断りしておきますが、どうしてこういう色付けがされるのかはいまいち理解し切れていません^^;とりあえずは結果オーライということで。
KCM_vorticity.jpg

 この状態だと真っ黒なカラーのパーティクルが多いのでMagmaflowエディターの下のオペレーターグループよりArithmeticを選んでそこからAbsoluteをエディター上にドラッグし、図のようにコネクトします。これでRGBの各値が全て絶対値となってマイナスの値がなくなるので、真っ黒なパーティクルが少なくなります。この時点で水のエッジの際が緑色になっているのを確認できます。(ここの説明かなり怪しいですが^^;。)
KCM_abs.jpg
 
 この状態だと白が強すぎる(RGBの各値が1以上)部分が多いので、同じくMagmaflowエディターの下のオペレーターグループよりArithmeticを選んでそこからMultiplyをエディター上にドラッグし、またInputグループからFloatノードを選択してドラッグし図のようにコネクトして少し白飛びを抑えます。Floatノードの値の0.5という数字は、現在のVorticityから得られる数値の結果に0.5倍してますよという意味です。(多分ここのMultiplyの手順いらないかも!?)
KCM_mult.jpg

 そしてvectorグループからNormalizeをドラッグしてきて図のようにコネクトします。これで全てのパーティクルの色がRGBの0から1の値に均等に収まるようになりよりRGBの色がはっきりしてきます。(なぜそうなるかを説明するのは結構めんどくさいのでここでは省略します^^;)
KCM_norm.jpg

 この後ライティングをしてレンダリングをするのですが、ここも詳細を書き出すととんでもなく長くなるので割愛します。というわけでレンダリング結果は以下のとおりです。
vorticity_sum.jpg


 それをアフターエフェクトに読み込んで緑のカラーだけ抽出したのがこれ。波打ち際というか、波の先端部分の白波みたいなのが抽出できているのが分かると思います。抽出の仕方は、アフターのエフェクトコントロールから「チャンネル」→「マット設定」で緑チャンネルだけを抜き取り、その後に色相彩度などでモノトーンにしてレベル調整をするといった感じです。

vorticity_element_sum.jpg

 今までの同様の処理をvelocityチャンネルや、またちょっと聞きなれないforceチャンネルにも設定することができます。ちょっとforceに関しては何を拾ってこうなっているのかよく分からないです。
velocity_KCM.jpg
force_KCM.jpg

レンダリングの結果は以下の通り。

velocity_sum.jpgVelocityチャンネルのレンダリング


velocity_element_sum.jpgVelocityより抽出した素材

force_sum.jpgforceチャンネルのレンダリング

force_element_sum.jpgforceより抽出した素材

mesh_sum.jpgリアルフローのメッシュのレンダリング


 krakatoa realflow.jpg全ての素材を合成した完成ムービー

 メッシュのみのレンダー結果と比べて本来白波が立つような部分に情報量が足されてかなりディティールが出ていると思います。とりあえず駆け足かつきちんと検証をせずに当てずっぽうで書いている部分も多くて間違いだらけの部分もあるかと思いますが、参考にしてもらえればと思います。今回の実験でぼんやりとですがMagmaflowも理解できてきたので今後もうちょっと突っ込んで検証して他に面白い表現ができないか試してみたいところです。
 
posted by けゑ at 10:02| Comment(7) | TrackBack(0) | krakatoa
この記事へのコメント
すごいですね、これっ!!やばいです。

シミュレーションもキレイなのですが、


素材の中の、フォ・・・

フォースチャンネル見た瞬間に、何度も見入ってしまう自分がいてどんべえ赤作ってたの忘れました笑


自分はもっとMagmaFlow勉強しないとです。がんばります。

RGBで出すと色々後で調整できますし、良いですよね。加算モードもありますし。RGBでライティングしたりして、ポストで調整したり。。。それに頼ってしまうってのも問題だったりしちゃったりするのですけど。

素のpositionとかも、最初「何だこりゃ…」multiplyしてNormalのため?みたいな感じでしたが、使いようによってはこんなこともできてしまう訳ですし。
http://www.fxguide.com/fxguidetv/fxguidetv-ep071.mov


RF5いつ出るのかなあ・・・。なんて
毎日わくわく+そわそわしてますw

Posted by たー at 2010年02月21日 18:16
>たーさん どもどもー。ご無沙汰してます。今回の検証かなりいい感じになってよかったです。たーさんはforceチャンネル萌えですか!さすがですw一瞬自分も「forceチャンネルきたー!」と思ってたんですが、実際は見ての通り結構ぶりぶりしていて使えない子だったりしますwやっぱりvorticityとvelocityがかなり効いてます。Magmaflowは情報無さすぎなのでぜひいろいろ研究して教えてくださいw自分はいろいろ手を出しすぎて限界ですw

 District 9のコンポやばすぎですよね。positionチャンネル出してライティングやマスクを作る際に使うとか最初意味が分かりませんでした。今もよく分かってないですが^^;

RF5はぼちぼち検証している人いるぽいですよ。まだ詳しい情報は全く入ってこないんですが。この前のシーグラフでは広域の波のシミュレーション(波頭とかしぶきとか含む)をやってたような気がしましたがリリース時にはどうなってるんでしょうね。自分も非常に気になります。
Posted by けゑ at 2010年02月21日 20:48
けゑさんどうもです。

フォース萌えしてしまいました^^/
なんかあのブリブリ感といい、コリジョンするときの白いwhitecaps的な感じがたまんないっ!!というか、カッコいいっ!!というか、、、んー。個人的に萌えの領域ですw


>RF5はぼちぼち検証している人いるぽいですよ。

いいなぁ羨ましい!!
rfmagazine出しているドイツのtsnさんとかRF5のnewFeatureのissueとかあって、早く触ってみたい。。。(良くないクセですw)
http://www.rf-magazine.com/2_issues/issues_flooding_01.html

RF5も、RF4より20倍早かったり、SPHとVoxelのハイブリッドできるよだとか、ライセンスがマシン単位になるとか、マルチスレッドだとか、RFのフォーラムにも書いてありますが、本当に実際どうなんでしょうね。
http://www.realflowforum.com/view_topic.php?pid=27337#p27337


でもしばらく、自分はRF4でがんばるですw
Posted by たー at 2010年02月21日 21:51
>たーさん まじですかー。RF5かなり凄そうじゃないですか。個人的にはgrid-based solverてところにかなり期待しています。多分なんですが、grid-based solverで計算したものってFumeみたいにグリッド内のベクター情報を保持することができると思うんですね。それを用いて水面に泡パーティクルを浮かせたりとかもできるような気がします。SPHだと泡は同時にシミュレーションが基本だけどgrid-based solverなら泡を後付で乗せられるというか。完全に勘違いしてるかもしれませんが^^;

 それにしても20倍速度アップとか異常ですw少ないパーティクルの分布ではってなってはいますが。ちなみに今回自分がリアルフローとKrakatoaで試したシーンではリアルフローの計算は2日かかって終わってなかったので、ここはかなり期待できるところですね。とりあえず自分ももうちょっと4で頑張ります。
Posted by けゑ at 2010年02月21日 23:02
見た感じ、Forceは圧力(この場合は水圧?)がかかっている強さみたいに見えるね。

2日もRFの計算回すとかきみんちの電気代どうなってんのよ?
でも参考になります。うちでも試してみよっと。

RF5、GridBaseってことは幻のFloodみたいになるってこと?
Posted by ko-nos at 2010年02月26日 16:36
>ko-noさん どもどもご無沙汰してます。Forceはなんかそんな感じですよね。でもほんといまひとつ使いづらいパスです。もうちょっといじればよくなるかもなんでぜひ試してもらいたいところです。

 自分ちの電気代はとりあえずエアコン切って極寒の中で作業してるので大丈夫ですwうそです。あまり電気代気にしないでやってます。なんせタバコも酒もやらない健全な身なのでまあ多少は大丈夫です。ぜひko-noさんとこでは3日コースの超ヘビーシミュレーション行ってもらえればと^^;

 RF5は多分そういう感じになると踏んでます。しかもハイブリッドということで、波をグリッドベースで生成→岩に当たった後はしぶきパーティクルに みたいなものがやりやすいんじゃないでしょうか。海外のインハウスツールはフローラインとかDDのやつとかハイブリッドだし、やはりそれ相応のメリットがあるからそうなってるんでしょうね。ようやくRFもそういう流れに乗ってくれるんじゃないかと期待しています。
Posted by けゑ at 2010年02月26日 17:03
3dsmax2010でrealflowのパーティクルを読み込み
KRAKATOAでレンダリングしたいのですが
うまく表示できません。
パーティクルはスプラッシュオブジェクト
なのですがパーティクルの量が
少ないのでしょうか?
それとも設定の違いでしょうか。
申し訳ありませんがアドバイス
お願いいたします。
Posted by まっつん at 2010年11月29日 22:38
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/35343015

この記事へのトラックバック