我一直在为我想要构建的库研究噪声算法,并从Perlin噪声开始(更准确地说,Simplex噪声,我想处理任意维度,或者至少6个维度)。阅读Simplex noise有助于解开谜团,但在最后的实现中,我看到了一个名为perm
的大查找表。
在代码示例中,它似乎用于将索引生成到一组梯度中,但该方法似乎很奇怪。我认为该表只是为了提供1)确定性和2)速度提升。
我的问题是,perm
查找表是否有任何辅助意义或目的,或者由于上述原因而存在?或者换一种方式,除了性能之外,是否有特定的原因导致伪随机数生成器未被使用?
这是一个字节数组。范围为0到255。如果你愿意,你可以把它随机化。你可能会想播种随机。。。等等
perm表(和grad表)用于优化。它们只是预计算值的查找表。你在第1)点和第2)点上都是正确的。
除了性能和可移植性之外,没有理由不使用PRN。