Houdini カールノイズ

http://www.serenelight3d.com/blog55/?p=2806
でノイズについて書いたが、カールノイズが抜けていたので今回検証してみた。

 

カール(curl)とは場(フィールド)を対象とするベクトル解析における「回転」演算を意味する。
Houdiniにおけるカールノイズは、ベクトル場に発散や消失を発生させないような
複数の渦巻き状の流れを作るベクトル場を構成する。

Houdiniでは次の4種類のVEX関数が用意されている。
引数は3次元ベクトルと4次元ベクトルの2つのバージョンがあるが
4次元ベクトルは位置(@P)+時間(@Time)として使用することが多い。

■PerlinノイズベースのCurl
vector curlnoise(vector xyz)
vector curlnoise(vector4 xyzt)

■SimplexノイズベースのCurl
vector curlxnoise(vector xyz)
vector curlxnoise(vector4 xyzt)

このカールノイズを速度ベクトルとして使用した場合には
そのベクトル場に沿いながらポイントが移動することになるが、その際
ポイントが一箇所に溜まったりバラバラに離散したりすることを避けながら
適度に不規則な動きを作ってくれる。

今回はカールノイズを使ってポイントをサーフェイス上で這わせてみた。
(DOP(Flip,POP,Grain等)は使用せずに全てSOP内で行っている)

カールノイズはSDFの-0.1~0のボクセル(サーフェイスの真下付近)だけに仕込んでおく。
SDFの勾配ベクトルと距離情報から、ポイントとサーフェイスのめり込み補正を行い
位置の補正後に近傍ボクセルのカールノイズを参照してポイントを動かしている。

Wrangleで常に重力をかけているので、サーフェイス上を這いながら
落下していく動きを作ることが出来る。

このテクニックで、SOPだけでいわゆる”Cling”ができる。
ポイントの軌道はカールノイズの周波数を変えるだけで簡単に変えることができる。

 

Houdini SOP Curl Noise Frequency test v001 from shuichi sakuma on Vimeo.

 

Houdini SOP Cling & Wetmap test v001 from shuichi sakuma on Vimeo.