沙漠分形OpenGL

时间:2014-07-07 08:43:42

标签: opengl fractals perlin-noise simplex-noise

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

3 个答案:

答案 0 :(得分:1)

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

它的C参考实现是here

答案 1 :(得分:1)

沙丘是侧翼:。=' \横截面...你可能想要使用那种初始形状

它们是规则的,就像海浪一样。不完全是噪音

它们向风伸长

我没有使用第一个条件,但我通过将2个1d perin噪音加在一起,甚至2个sin / parabol函数,它们都排成一个轴,制作了很好的沙丘。即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倍,并且当两个直的水波以几乎相同的角度相遇时,加上使用噪声作为角度的不确定性变量。

答案 2 :(得分:0)

也许湍流对你所需要的东西来说已经足够了...尝试使用八度音程返回值的绝对值而不是正常值来玩湍流。您还可以单独评估,并将噪音和湍流结合起来,将两种效果混合在一起。