我写了一个Perlin噪声发生器,但这取决于非常不方便的东西:我必须预先生成一个随机向量网格。
理想情况下,我希望有一些函数double f(int x, int y, int z, int seed)
(或者类似的)在给定相同参数的情况下始终返回相同的值,但其结果看起来足够随机,可以在小范围的x,y上生成噪声,和z。然后,在我的噪声生成算法中,它不是索引到预先计算的网格中,而是可以动态生成“随机”向量。通过这种方式,我可以在仅以整数限制为界的坐标处对噪声函数进行采样,而不是受到内存限制的限制。
这样的事情可能吗?显然,随机性不会像预先计算向量那样高质量,但我只需要在视觉上看起来足够随机的东西。有没有现成的方法呢?
答案 0 :(得分:1)
这称为哈希函数。有许多非常好的:对于您的使用,安全性不是速度问题,我会使用类似MD5或SHA1的东西。