今回RenderManのボリュームシェーダと屈折系シェーダのテストを行うために
以下のような海中を泳ぐクラゲのシーンを作成した。
海の中を表現するために大きなコンテナに対してボリュームシェーダを設定。
その上部にエリアライトを置き、ライトとコンテナの間にライトをブロックするための
複数のグリッドを配置した。それをVEXで小刻みに動かして水中に差し込む光を表現した。
Houdini Jellyfish test from Shuichi Sakuma on Vimeo.
クラゲの頭の動きはH18から新しくなったBendノードとsin関数を組み合わせて制御。
クラゲの触手はVellumを使って動かした。
シーンに大量の屈折体やボリュームシェーダが割り当てられたスケールの大きいオブジェクトが
ある場合でも、RenderManは極端にレンダリングスピードが落ちることがない。
このあたりが標準レンダラーのmantraとは違う点。
今回少しだけRenderManカスタムシェーダを書いたが、SeExprは必要な関数が
一通り揃ってるため使いやすかった。
(以前ブログにも書いたがSeExprはWalt Disney Animation Studiosが策定した
エクスプレッション言語)
http://wdas.github.io/SeExpr/doxygen/userdoc.html
シェーダ内でSeExpr関数を使う際には以下の本が役に立った。
REYESが終わってもこの本はまだまだ活躍できる。