我们尝试使用2d perlin噪声(使用recorsive / fractal技术)生成3d世界。我们已经很好地生成了山脉和山谷,但现在我们遇到了沙漠和沙丘的问题,因为我们只处理持久性和 octaves 我们无法制作经典的沙丘形状。有没有人经历过这个?任何解决方案,可能仍然使用perlin噪声,或其他允许你这样做的算法?
答案 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)
也许湍流对你所需要的东西来说已经足够了...尝试使用八度音程返回值的绝对值而不是正常值来玩湍流。您还可以单独评估,并将噪音和湍流结合起来,将两种效果混合在一起。