シード整数と他の 2 つの整数 x と y に基づいて動作するパーリン ノイズ ジェネレーターを開発しています。
ここまでで、疑似乱数ジェネレーターは次のようになります。
private float noise(int x, int y) {
int n = x + y * seed;
return (1.0f - ((n * (n * n * 15731 + 789221) + 1376312589) & 0x7fffffff) / 1073741824f);
}
しかし、この実装にはいくつかの問題があります。まず、戻り間隔が一定ではなく (理想的には、[-1, 1] または [0, 1] で作業したい)、負の x および y 値の場合、パターンがブロック状になり、有機的に見えなくなります。私のニーズに合うように私の式(またはまったく新しいもの)を変更する方法はありますか?