Jer*_*oen 2 algorithm procedural-generation noise simplex
我一直在努力实现Simplex Noise大约一个月,我确实理解使用Simplices来减少所需的计算量以及渐变侧的安全功率.然而,将其实现为任何语言,似乎都是不可能的任务.
在我找到的每一个,每一个,每个代码中,我读到的资源,无处不在,代码似乎都有一个G和一个P表.从一些谷歌搜索和询问周围我了解到他们是一个排列和一个渐变表.他们在做什么?我们为什么需要它们?
我目前的想法是排列表只包含随机值,因此不必在运行时计算它们.
例子:
基本上是的,P表用于从G表中选择随机梯度.然而,重要的是它需要是可重复的.也就是说,在3D情况下,对于给定的(i,j,k)三元组,您需要能够始终生成相同的"随机"渐变.这就是使噪声函数连贯的原因.因此,在P表中进行一些查找的公式的全部要点是结果看起来是随机的,但它对于给定的输入是确定性的.
如果您不关心性能,可以轻松地使用(i,j,k)伪随机数生成器,然后使用它从G表中选择一个渐变.