为什么我的Simplex Noise出现在四列?

我试图用单纯的噪音来制作一个Texture ,但是不管大小是多less,都会像这样一直出现:

坏单纯的噪音

以下代码用于生成图像的颜色date:

 private Color[,] GetSimplex() { Color[,] colors = new Color[800, 600]; float scale = colors.GetLength(0); for (int x = 0; x < 800; x++) { for (int y = 0; y < 600; y++) { byte noise = (byte)(Noise.Generate(x / scale, y / scale) * 255); colors[x, y] = new Color(noise, noise, noise); } } return colors; } 

我认为这可能是这三件事中的一件,或者它们的组合(从可能到不太可能)

  • Noise.Generate()中有错误

  • X和Y不是随机的,因此噪声的种子值很差

  • 将Noise.Generate()的输出截断为一个字节可以减less熵。 巧合的是,浮点数是一个字节的4倍。