0

不幸的是,我一直使用的 simplex/perlin 噪声生成器非常臃肿且基于 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);
    }
}

我尝试了两种不同的实现,当前是这个c perlin library

断点像1.88858049852505e-308第一次一样显示一个值,但是当我继续执行时,所有后续断点都显示“0”。

我错过了什么?

4

1 回答 1

1

对于整数位置,Perlin 噪声定义为零。尝试旋转、缩放或平移你的空间,看看会发生什么例子:

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 回答