Houdini 18.5 VEX

VEXクックブック

VEXによるプログラミングのサンプルと提案。

On this page

VEXのサンプル

VEXベースのオペレータのVEXの実装を参照する:

  1. オペレータをネットワークに追加します。

  2. タイルメニューを開いて、 Type Properties を選択します。

他のサンプルのVEXソースコードは、ウェブ上で利用可能です。

Constant Color COP

以下のように"Constant Color COP"関数を記述します:

cop
constant(vector clr=1; float alpha=1)
{
R = clr.r;
G = clr.g;
B = clr.b;
A = alpha;
}

しかし、可能な限りいつでも効率性の高いassign関数を使うべきです。

cop
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マクロを使って関数の内容を暗号化して、単にマクロをコールするだけでベクトルや他の次元のノイズを生成することが可能です。

VEX

言語

次のステップ

リファレンス