改善的柏林噪声范围是多少?



我试图找到改进的柏林噪声在1、2和3维的理论输出范围。我知道这个问题的现有答案,但它们似乎与我的实际发现不符。

如果n是维数,那么根据[1]它应该是[-sqrt(n/4), sqrt(n/4)]。根据[2](指[3]),它应该是[-0.5·sqrt(n), 0.5·sqrt(n)](相当于相同的东西)。

这意味着范围应该近似于:

tbody> <<tr>2
尺寸 范围
1[-0.5, 0.5]
[-0.707, 0.707]
3[-0.866, 0.866]

Ken没有使用单位向量。正如[1]所说,我要强调:

第三,有许多不同的方法来选择网格单元角处的随机向量。在改进的柏林噪声中,不是选择任何随机向量,而是使用指向立方体边缘的12个向量中的一个。在这里,我将严格地讨论连续的角度范围,因为它更容易——然而,使用一组受限的向量实现柏林噪声的值范围永远不会更大。最后,此存储库中的脚本假定向量的长度为单位。如果没有,则应根据最大向量长度缩放值的范围。注意,改进柏林噪声中的向量不是单位长度的。

对于Ken改进的噪声,最大矢量长度在1D中为1,在2D中为√2,因此理论边界在1D中为[−0.5,0.5],在2D中为[−1,1]。我不知道为什么你们没有看到完整的2D图像;如果你洗牌的话,我打赌你有时会。

对于3D,最大向量长度仍然是√2,但由[1]确定的极端情况不是可能的输出,因此理论范围[−√(3/2),√(3/2)]是一个高估。这些人试图准确地计算出来,是的,最大绝对值似乎确实严格大于1。

最新更新