0

我阅读了这篇关于 Perlin Noise 的文章,如果有人有答案,我有几个问题,因为我似乎遇到了一些问题。在靠近底部的伪代码 2D 部分中,它显示他随机生成数字,但不是将一个变量作为 1D 代码中的参数,而是使用“x”和“y”。这在二维噪声中是否需要?此外,他的 PerlinNoise_2D 函数现在采用 2 个浮点参数,而不是 1 维示例中的 1 个。这些浮点值应该是什么以及它们来自哪里,因为我无法找到如何在我的一生中获得它们。因此,如果有人知道我的任何问题的答案,我将不胜感激。谢谢。

编辑:好的更简单的问题,我在哪里可以获得作为 PerlinNoise_2D 函数参数的 2 个浮点值?

4

1 回答 1

1

二维模式需要2参数。将它们视为代表模式的笛卡尔xy坐标,以最适合您的应用程序的方式。

因此,例如,如果您想在 C++ 中生成 W×H 噪声图,您可以执行以下操作:

float noise[H][W];
for (int y = 0; y < H; ++y)
    for (int x = 0; x < W; ++x)
        noise[y][x] = PerlinNoise_2D(x, y);

例如,您可以使用这些noise值来调制位图中像素的颜色值。

(在本例中,xandy参数不需要是floats,但在一般情况下,您可能希望它们是。)

于 2012-05-11T18:46:25.707 回答