VOP SopとShader

HoudiniにはVEXスクリプトっていうスクリプト言語があって、
Shaderを作ったりPointを制御したりすることが出来ます。

スクリプトなのでエディタを使って手でプログラミングしないといけないんだけど、
それをNodeを使ってVisual的に作ってしまえるVOPというものがあります。

SOP Node内でVOP Sopを使ってModelを変形させたり、
Shop内でShaderを作ることも出来ます。

VOP SopもShadeも同じNodeを使えるので(それぞれ使えるものと使えないものもありますが)、連携させると便利に使えます。
特にプロシージャルで作ったDisplacementのアニメーションはレンダリングしないとイメージがつかみにくいのですが、
VopSOPを使うことによって簡易にプレビューをすることが出来ます。

今回はHOT(HoudiniOceanTool)を使ってみました。
これは海洋面を作るOpenSourceなプラグインで、Houdini以外の3Dアプリにも移植されてます。

で、実際に使用してみたのが以下の画像です。
左がVopSopで変形させたグリッドで、右が一枚のポリゴンをDisplacementで変形させたものです。
左は実際にモデルを変形させているのでリアルタイムでアニメーションのプレビューができますが、
レンダリングさせると細かい部分が表現されません。
ポリゴン数を増やせば細かく表現できるけど、当然重くなってしまいます。
右は、レンダリング時にMaicroPolygon化されるので細かい部分まで表現されています。
そのかわりレンダリング時間は増大してしまいます。

Vop_0001

Vop_2

Vop_3

Vop_4

ちなみにに、これがVopSOPの中身。

Vop_5

これがVOPShaderの中身。

Vop_6

Shaderを作る場合、VopSOPの中身をそのままコピーしてもだめで、
座標系の変換とノーマルの処理をしてやらないといけません。
座標系の変換は、実はよくわかってないんだけど、とりあえず手探りでやってたり。

Vop_7

Vop_8

それと、これはDisplacementShaderなので、別にSurfaceShaderも必要になります。

CG,Houdini

Posted by naniwa_cg