0

残念ながら、私がいつも使用してきたシンプレックス/パーリン ノイズ ジェネレーターは非常に肥大化し、Java ベースであり、c/obj-c に転送するのは面倒です。ゲームの iOS バージョンで使用するより良いクラスを探していますが、奇妙な問題があります。

2D 背景の各「タイル」をループするコードがあります。各タイルのノイズ値を計算する必要があります。私の Java 実装では、正常に動作します。

ただし、コードを実行するたびに、ブレークポイントが最初にヒットしたときに適切な値を出力するように見えますが、それ以降はゼロしか返されません。

for (double x = 0; x < 2; x++){
    for (double y = 0; y < 2; y++){
        double tileNoise = PerlinNoise2D(x,y,2,2,1);
    }
}

私は 2 つの異なる実装を試しましたが、現在はこのc perlin libraryです。

ブレークポイントには1.88858049852505e-308初回と同じ値が表示されますが、実行を続けると以降のブレークはすべて「0」と表示されます。

私は何が欠けていますか?

4

1 に答える 1

1

パーリン ノイズは、整数位置に対してゼロと定義されます。空間を回転、スケーリング、または平行移動してみて、何が起こるかを確認してください。例:

double u = 0.1;
double v = 0.1;
for (double x = 0; x < 2; x++){
    for (double y = 0; y < 2; y++){
        double tileNoise = PerlinNoise2D(x+u,y+v,2,2,1);
    }
}
于 2013-06-19T00:07:20.710 に答える