On this page |
VEXのサンプル ¶
VEXベースのオペレータのVEXの実装を参照する:
-
オペレータをネットワークに追加します。
-
タイルメニューを開いて、 Type Properties を選択します。
他のサンプルのVEXソースコードは、ウェブ上で利用可能です。
Constant Color COP ¶
以下のように“Constant Color COP”関数を記述します:
cop2 constant(vector clr=1; float alpha=1) { R = clr.r; G = clr.g; B = clr.b; A = alpha; }
しかし、可能な限りいつでも効率性の高いassign関数を使うべきです。
cop2 constant(vector clr=1; float alpha=1) { assign(R, G, B, clr); A = alpha; }
ユーザノイズ関数 ¶
このサンプルは、正規化したマルチオクターブなPerlinノイズを生成する複数の2つのユーザ関数を定義しています。
float myfperlin3d(vector pos; int octaves; float rough) { int i; float nval; vector pp; float result, sum, scale; // パラメータが参照で渡されるので、パラメータの値をまったく修正したくありません。 // そのため、パラメータを一時変数にコピーします。 pp = pos; scale = 1; sum = 0; result = 0; for (i = 0; i <= octaves; i++) { result += noise(pp); sum += scale; pp *= 2; scale *= rough; } return result / sum; } float myfperlin1d(float pos; int octaves; float rough) { int i; float nval; float pp; float result, sum, scale; // パラメータが参照で渡されるので、パラメータの値をまったく修正したくありません。 // そのため、パラメータを一時変数にコピーします。 pp = pos; scale = 1; sum = 0; result = 0; for (i = 0; i <= octaves; i++) { result += noise(pp); sum += scale; pp *= 2; scale *= rough; } return result / sum; }
#defineマクロを使って関数の内容を暗号化して、単にマクロをコールするだけでベクトルや他の次元のノイズを生成することが可能です。