单纯形噪声参考数组

时间:2016-10-19 04:40:47

标签: javascript canvas graphics procedural-generation simplex-noise

编辑:我一直在调整Simplex噪音构造函数上的滑块。我使用了更柔和的浮点数,看到了更少的条形数。可能的解决方案?

{ frequency: 0.001, amplitude: 0.010, persistence: 0.50, octaves: 10 }

我正在使用Simplex噪声来生成更好的伪随机噪声。我试图创建一个基本的地图生成器,我希望使用生成的Simplex噪声来与预定义的纹理数组相关联。我使用从joshforisha解释的算法来选择缩放到数组长度的Simplex数。

我创建了简化版here。在获得代码之前,您可能需要刷新代码几次,但是您应该看到重复" un-simplex"样式线点缀Simplex噪音。

我对这种情况的理解是,返回的随机数不是映射数组的长度,也不是它跳过太多数字,但我不确定。

以下是从阵列中获取噪声的方法。我已经省略了对其他已定义代码的引用,以使我的示例尽可能简短。

var noiseGen = new FastSimplexNoise({
    /** use simplex noise constructor **/
    amplitude: 0.015,
    frequency: 0.015,
    octaves: 3,
    max: text.length /** set reference to length of textures **/,
    min: 0
});

/** iterate over canvas width **/
for (var i = 0; i < width; i++) {

    /** iterate over canvas height **/
    for (var j = 0; j < height; j++) {

       /** create noise point **/
       var n = noiseGen.in2D(i, j);

       /** make noise a whole number for use as index look up **/   
       var h = parseInt(n);

       /** get texture from array **/
       var t = text[h];

       /** paint **/
       ctx.fillStyle = t.hexidec;
       ctx.fillRect(i * scale, j * scale, scale, scale);
    }
 }

1 个答案:

答案 0 :(得分:0)

在这里回答我自己的问题。我相信我的噪音算法存在问题。我一直在调整方块的投影和分布方式,似乎这个问题已得到解决。感谢任何有时间考虑问题的人。