CGWorld vol.154に掲載された記事です。
SPHを用いたフルイドシミュレーションの例です。
このプロジェクトは、困難を極めるものでした。
自分自身が、あまりSPH Fluidを用いたことが無いのと、
基本的なアプローチで、ミスを連発したりと、なかなか画に出来ずにいました。
なので、更新が大幅に遅れてしまいました。
(実際、ちょっと萎えていた部分も有りますが…)
鉄はアツイうちに打つべきですね。
今回は、SPHを用いたわけですが、
Flip Solverを使わなかった理由は、
Flip Solverの性質上、質量を保ちにくいという事にあります。
今回のシチュエーションでは、ボールの中に、
一定量の液体が保たれなくてはいけないので、
結果、Flip Solverを使用できないのです。
反面、SPHは、Substepなどの兼ね合いで、暴発しやすくもあります。
ただ、それに関しては、時間をかければ解決することなので、
アプローチの仕方には関係の無いことですね。
Flip Solverは、非常に軽いです。
ただ、シチュエーションとしては、もっと広範囲なものや、
範囲に縛られないものに向いていると言えます。
反面、SPHは重く、レスポンスは悪いですが、
非常にリアリスティックにシミュレーション出来ます。
続いて起きた問題は、
SPHのパーティクルにメッシュを張る際に起こる、
コリジョンとの整合性の問題です。
ある程度、高密度なシミュレーションをしても、
メッシュを張った際に出来てしまう隙間の問題です。
特に今回は、コリジョンとなる球体がガラスですので、
その隙間は如実に出てきてしまいます。
そこで、無理やり、ガラス付近に接しているメッシュを、
Ray SOPでぴったりとくっつけてあげます。
実際にはこれでも隙間はあるのですが、幾らかはましになります。
最後の問題は、モーションブラーです。
今回は、Velocity Blurを使っているのですが、それがそもそもの間違いで、
本当は、mantraのGeo Time Samplesを上げて、Deform Blurを有効にするべきでした。
ちなみに、以前はDeformとTransformのMotion Blurが分かれていたのですが、
バージョンを重ねるごとに仕様が変わってしまいました。
恥ずかしながら、Geo Time Samplesをついこの間まで知らず、
Velocity Blurばかりを使って、なんでいちいちVelocity付けなくちゃいけねぇんだよと、
Houdini様のせいにしていました。
無知とは罪です。
そのため、Velocityを利用していたのですが、そうすることで、
球体が静止状態の時に、中の液体が激しく動けば、
ガラス球から液体だけのブラーが飛び出すという、
なんとも間抜けなエラーを重ね、さらには、
球体付近の液体のVelocityを球体自体のVelocityを使ってねじ曲げるといった、
なんともお粗末なアプローチをとってしまっています。
そのせいで、表面に、変なモヤモヤが出てしまっています。
教訓もかねて、あえて恥を晒そうと思います。
非常に反省点の多い作品になってしまいました。
次回に活かしていきたいですね。
![CG WORLD (シージー ワールド) 2011年 06月号 [雑誌]](http://ecx.images-amazon.com/images/I/51Tx9dzFFlL._SL160_.jpg)
CG WORLD (シージー ワールド) 2011年 06月号 [雑誌]
クチコミを見る