4

我们正在尝试使用 2d perlin 噪声(使用 recorsive/fractal 技术)生成 3d 世界。我们已经很好地生成了山脉和山谷,但是现在我们遇到了沙漠沙丘的问题,因为我们只处理了持久性八度音阶,我们无法制作出沙丘的经典形状。有人已经经历过吗?任何解决方案,可能仍然使用柏林噪声,或者其他允许你这样做的算法?

4

3 回答 3

1

你可以试试Musgrave 脊形多重分形。它提供了很好的脊状结构,您可以使用现有的噪声算法。

它的 C 参考实现在这里

于 2014-07-07T08:57:32.013 回答
1

沙丘是半边形的: .='\ 横截面...您可能想要使用这种初始形状

它们是规则的,就像大海中的波浪。不完全是噪音

它们向风拉长

我没有使用第一个条件,但是我通过将 2 个 1d perin 噪声或什至 2 个 sin/抛物线函数相乘来制作了很棒的沙丘,它们都排列在一个轴上。即 Z,它们有一个小的低频 Sin 或沿 X 轴摆动的噪声,因此它们没有对齐。

尝试这个:

dunes = sin ( X + 1dperlin(Z) *.2 ) * sin ( X + 1dperlin(Z+432) *.2 );

otherwise to test it:

dunes = sin ( X + sin(Z) *.2 ) (plus or times or devided by) sin ( X + sin(Z+432) *.2 );

0.2 使沙丘长 10 倍于宽度,这就像两个直水波以几乎相同的角度相遇,再加上使用噪声作为角度的不确定性变量。

于 2014-08-23T02:29:17.297 回答
0

也许湍流足以满足您的需要...尝试使用八度音程返回值的绝对值而不是正常值来处理湍流。您还可以单独评估并结合噪声和湍流,在某些区域混合两种效果。

于 2014-08-17T15:47:37.567 回答