2009年4月23日 星期四

A Generic Ripple - Creating a custom VEX Operator (by Georg Duemlein)

(這前4篇只是將以前寫在另一個blog的Houdini心得整理過來)

這是網路上抓到的一個教學範例
連結:http://www.preset.de/2007/0824/generic_ripple/rdg-genericRipple.pdf


Step1: File -> New Operator Type ...













Step2:
在Operator Name 輸入 rdg_ripple
Operator Label 輸入 RDG Ripple
(這裡可以自由輸入名稱,為尊重作者,所以用教學檔上的名稱)

Network Type 選擇 Geometry Operator
Install Library to 選擇 Current HIP File Only
Save To Library 則指定自己想儲存的路徑
按下 Accept

Step3:
然後會出現以下視窗






















選擇Vex Code標籤
Key入
sop
rdg_ripple( float freqency = 50;
float speed = 0;
float amplitude = 0.1;)
{
vector offset = {0, 0, 0};
float offset_y = 0;
float dist = length(P);
offset_y = sin(dist * freqency + speed) * amplitude;
setcomp(offset, offset_y, 1);
P += offset;
}

按下Test Compile,若是沒有bug,則會出現以下視窗(先不要將此視窗關掉)
























Step4:
在Network Editor按下 Tab鍵→Geometry,按下i進入Geometry node,
刪除file1 node,接著再按Tab→Grid,然後將Rows 及 Columns調到50,如圖
(將那兩個數值調高的原因在於可以展現較平順的效果)






















Step5:
在grid1的output上,shift+滑鼠右鍵→RDG Ripple,會出現如下圖:

















然後按下Operator Type Properties視窗的 Apply
即出現如下圖之結果:
















挺有意思的吧


這裡只單純的大概介紹如何使用sop shader,教學檔裡的理論部份也只是簡單的三角函數,就不贅述囉!

1 則留言:

  1. 好寶貴的資訊...

    我覺得我們這圈子即將飛黃騰達了

    回覆刪除