On this page |
ノイズジェネレータ ¶
noise、wnoise、vnoise、onoise、snoise、anoiseの関数を使ってノイズを生成することができます。
各関数は、ノイズを生成するために異なるアルゴリズムを使います。そのため、メソッドを変えることで計算速度の妥協点を探したり、 さらに、他のメソッドまたは古いメソッドで生成されたノイズ値との互換性を持たせることができます。
別のタイプのノイズの計算に対する相対負荷は、おおまかに以下の通りです:
ノイズタイプ | 相対負荷 |
---|---|
Perlinノイズ(noise) |
1.0 |
オリジナルのPerlinノイズ(onoise) |
1.1 |
Worleyノイズ(wnoise) |
1.8 |
Sparse Convolutionノイズ(snoise) |
2.1 |
Alligatorノイズ(anoise) |
2.3 |
乱数ジェネレータ ¶
randomはN次元の空間(Nは1から4までの次元)内の位置に基づいて乱数を生成します。
乱数を整数ラティスポイント間で滑らかに補間するノイズ関数とは違い、random関数は、そうしません。
random()関数は、次のようなことをするのに非常に効率的な方法です:
noise(floor(position))
hscript_randはHoudiniのrand()エクスプレッションと同じ結果を生成します。 この関数は、どの浮動小数点のシードに対しても異なる乱数を生成します。 この関数は、浮動小数点の引数を整数のシードに変換するrandomとは異なります。 hscript_randはハードウェアやオペレーティングシステムが違うと、異なる結果を生成します。
nrandomは非決定的乱数ジェネレータです。 生成される数値は、0から1の間です。これらの関数は、正確に同じ順番でコールされると、同じシーケンスの乱数を生成します。 しかし、呼び出すシードがないので、同じ乱数やシーケンスを何度も再生成することができません。