使Perlin噪声可扩展

时间:2016-10-16 03:37:09

标签: java scale noise perlin-noise simplex-noise

我得到了一个perlin噪声算法和一个opensimplex噪声算法,它根据给定的X和Y值返回一个double。我正在设计软件,我想知道如何:

  • 使用0-1双倍值缩放perlin噪音
  • 允许以不同的分辨率(即1024,2048)构建perlin但仍保持比例,但添加其他细节。
  • 允许用户更改世界尺寸,这也会影响比例

我目前的代码:

double scale = ((((Double) parameters.get(SCALE).getValue() * 10) + 0.25) * ProjectSettings.WORLD_SIZE) /  ((double) resolution / 1000);
double x = 0;
double y = 0;
OpenSimplexNoise noise = new OpenSimplexNoise((Long) parameters.get(SEED).getValue());
for(int n = 0; n < resolution; n++) {
    x += scale;
    for(int m = 0; m < resolution; m++) {
        y += scale;
        values[n][m] = noise.generateOpenSimplexNoise(x, y, (Double) parameters.get(PERSISTENCE).getValue(), (Integer) parameters.get(OCTAVES).getValue());
    }
}

1 个答案:

答案 0 :(得分:-2)

如果要更改Perlin噪声图像的分辨率,请在for循环中更改高度值。 为了进行缩放,您必须将Perlin噪声方法的第一个和/或第二个参数乘以某个变量,该变量在您需要缩放时会发生变化。时间价值可能非常适合这一点。请参阅下面的代码示例。

/page/from/my/application