我可以使用2D Perlin噪波函数来生成高度值,但我不明白为什么要使用3D Perlin噪波函数。在Notch的博客中,他提到在Minecraft上使用3D Perlin噪声函数生成地形。有人知道如何做到这一点,以及为什么它会有用吗?如果您正在传递x
、y
和z
值,这不意味着您已经有了高度吗?
这篇文章确切地说明了他使用3D噪音的原因:
我使用了2D Perlin噪波高度图。。。……但缺点是迟钝的具体来说,没有办法此方法生成任何悬伸。
所以我把系统切换到基于3D Perlin的类似系统噪音而不是对"地面"进行采样高度",我将噪声值视为"密度"大于0将是空气,以及任何东西大于或等于0地
好吧,《我的世界》是关于Mines的。所以,Notch试图解决的问题是:"我如何在我的世界里找到洞/悬挑?"
由于2D perlin噪波会生成好看/平滑的山丘,因此3d perlin噪波会在3d体素网格中生成好看/光滑的山丘和好看的洞。
这里可以找到一个实现(而这是一个N维解决方案)。
在其他使用情况下,3D柏林噪波的Z分量被设置为当前时间。通过这种方式,您将在不同的2d perlin噪波之间获得平滑过渡,这可以用作流体纹理的基础。