我从这里得到了Perlin Noise算法,我想知道是否有办法让地形变得无限。问题在于这个函数(Java):
float[][] GenerateWhiteNoise(int width, int height, int seed)
{
Random random;
random = new Random(seed);
float[][] noise = new float[width][height];
for (int i = 0; i < width; i++)
{
for (int j = 0; j < height; j++)
{
noise[i][j] = (float)random.nextDouble() % 1;
}
}
System.out.println("Generated White Noise with seed:"+seed+"; xOffset:"+xOffset+"; yOffset:"+yOffset);
return noise;
}
有人知道如何使该函数的随机生成器依赖于当前噪声瓦片的偏移量吗(这些偏移量存储在两个变量xOffset
和yOffset
中)?使用类似Math.pow(xOffset,yOffset)
的东西并将其设置为种子会产生不稳定、破碎的结果,但这些结果根本不起作用。有人有什么见解吗?
任何帮助都将不胜感激,谢谢!
以下是在GLSL着色器中实现的4D噪声平铺:
http://shaderfrog.com/app/view/254
它基于这个答案中的实现https://gamedev.stackexchange.com/questions/23625/how-do-you-generate-tileable-perlin-noise/23639