如何制作perlin噪音的蜂窝版?

时间:2014-02-06 12:35:34

标签: noise perlin-noise hexagonal-tiles simplex-noise

我希望:

将常规的2d perlin噪声约束成为自身的量化直线版本,其中直线为60°

也许我可以将perlin噪声函数的输入量化为3 60°轴?

也许我可以重写2d单纯形噪声,以便它可以从x-z平面的3个轴而不仅仅是xz轴工作?

一个不太好的解决方案是采用3个不规则的锯波并将它们乘以3个轴。

目标: 我正在测试使用等距60°Regular Triangle Mesh(即六边形)显示的perlin景观。它比方形网格更好,更有效地利用空间。使用基于lofi hex的perlin噪声模型看起来非常好看,因为在50度线上,顶点会产生锯齿形,所以如果我可以控制perlin噪声的角度,我可以控制六边形世界的质量

2 个答案:

答案 0 :(得分:0)

好吧我已经制作了蜂窝状perlin噪音大声笑!

与perlin3d相同,但abs(vtx.xyz)除外是Mathf.Abs(vtx.x),Mathf.Abs(vtx.x * .5-vtx.z * .866),Mathf.Abs(vtx。 x * .5 + vtx.z * .866)...这里是使用60'deg轴的perlin噪声的照片:

60'没有三次插值 without cubic interpolation

60'采用三次插值 with cubic interpolation

答案 1 :(得分:0)

好的,这是另一个更有趣的选项...而不是使用生成和插值随机值的方形xy网格,只需将xy网格转换为六边形网格,方法是将每第二行向左移动0.5并使其成为每行0.866,这会创建一个三角形格子而不是一个方格,在常规三角形网格的每个交叉点上都有一个随机点。

之后,有必要在3点之间进行插值。它将是某种平坦的三角形山脉。