1D单纯形噪声返回相同的一代

我一直在使用一维单纯形噪声来创建一个随机的世界表面,并使用相同的表面地形来生成一些细微的变化。 这是我的示例代码 –

Tile[][] tiles = new Tile[rows][]; for (int i = 0; i < rows; i++) { tiles[i] = new Tile[cols]; for (int x = 0; x < cols; x++) { tiles[i][x] = new Tile(0, new Vector2(x, i), scale); } } int left = Main.rand.Next(rows / 4, rows / 2); double seed = Main.rand.NextDouble(); for (int i = 0; i < cols; i++) { int height = left + (int)(Noise.Generate((float)seed) * 10); height = (int)MathHelper.Clamp(height, 0, rows - 1); tiles[height][i] = new Tile(2, new Vector2(i, height), scale); //FillLower just fills everything under the top tile FillLower(tiles, height, i, scale); seed += .05f; } 

我的问题是我做了单纯噪声方法的错误吗? 我应该如何生成它看起来不同?

图片供参考 – http://imgur.com/I0g98z8,M61UBfb,tYPflb7

 double seed = Main.rand.NextDouble(); 

给你一个0..1倍的价值

 (float)seed) * 10 

给你一个0..10的值

 seed += .05f; 

给一点点三角洲。

尝试

 double seed = Main.rand.NextDouble() * 255.0; //or greater ... int height = left + (int)(Noise.Generate((float)seed) ); ... seed += 1.0; //play with this increment