0

我希望:

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

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

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

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

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

4

2 回答 2

1

好的,我做了蜂窝柏林噪音大声笑!

它与 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' 无三次插值 没有三次插值

60' 三次插值 三次插值

于 2014-02-07T19:14:33.600 回答
0

好的,这是另一个更有趣的选项......而不是使用生成和插值随机值的方形 xy 网格,只需通过每隔一行横向移动 0.5 并使每行 0.866 将 xy 网格变成六边形网格,这将创建一个三角形格子而不是正方形格子,在正三角形网格的每个交点上都有一个随机点。

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

于 2014-02-09T11:43:29.833 回答