2014-02-06 36 views
0

我希望:如何制作珀林噪声的蜂窝版?

使普通的2D Perlin杂约束成量化,直线版本的本身,其中所述直线是60°

也许我可以量化柏林噪声函数的输入是在3个60°轴上?

也许我可以重写2D单工噪声,使它可以从x-z平面的3个轴而不是仅仅xz轴起作用?

一个不太好的解决方案是取3个不规则的锯齿波并在3个轴上相乘。

目标: 我正在测试使用等角60°规则三角网格(即六边形)显示的perlin景观。它比方形网格更好,并且更有效地利用空间。使用基于lofi hex的perlin噪声mointains会非常好,因为例如在50度线上,顶点会形成zig zags,所以如果我可以控制perlin噪声的角度,我可以控制基于hexagon的世界的质量。

+0

柏林噪声是连续的,所以你可以计算六边形的中心,然后在这些点上采样柏林噪声 –

回答

0

好的我已经做了蜂窝perlin噪音大声笑!

它与perlin3d相同,但abs(vtx.xyz)是Mathf.Abs(vtx.x),Mathf.Abs(vtx.x * .5-vtx.z * .866),Mathf.Abs(vtx .X * 0.5 + vtx.z * 0.866)...这里是使用60'deg轴Perlin杂的图片:

60' ,而不三次插值 without cubic interpolation

60' 三次插值 with cubic interpolation

0

好的,这里是另一个更有趣的选项...而不是使用一个方形的xy网格,随机值生成和插值,s意味着将xy网格转变成六边形网格,方法是将每个第二排向左移动0.5,并使每一排成为0.866,这将创建一个三角形格子而不是一个正方形网格,并在正交三角形网格的每个相交处都有一个随机点。

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