Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
沙漠分形OpenGL_Opengl_Fractals_Perlin Noise_Simplex Noise - Fatal编程技术网

沙漠分形OpenGL

沙漠分形OpenGL,opengl,fractals,perlin-noise,simplex-noise,Opengl,Fractals,Perlin Noise,Simplex Noise,我们正在尝试使用2d柏林噪声(使用复原/分形技术)生成3d世界。我们生成的山脉和山谷相当不错,但现在我们在沙漠和沙丘方面遇到了问题,因为我们只研究了持续性和八度音阶,无法生成沙丘的经典形状。有人经历过吗?任何解决方案,可能仍然使用柏林噪声,或者其他允许您这样做的算法?您可以尝试一下Musgrave脊状多重分形。它提供了很好的脊状结构,您可以使用现有的噪声算法 它的C参考实现是也许湍流已经足够满足您的需要。。。尝试使用八度音阶返回值的绝对值而不是正常值来播放湍流。您还可以单独评估,并将噪声和湍流组

我们正在尝试使用2d柏林噪声(使用复原/分形技术)生成3d世界。我们生成的山脉和山谷相当不错,但现在我们在沙漠和沙丘方面遇到了问题,因为我们只研究了持续性和八度音阶,无法生成沙丘的经典形状。有人经历过吗?任何解决方案,可能仍然使用柏林噪声,或者其他允许您这样做的算法?

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


它的C参考实现是

也许湍流已经足够满足您的需要。。。尝试使用八度音阶返回值的绝对值而不是正常值来播放湍流。您还可以单独评估,并将噪声和湍流组合在一起,以便在某些区域混合这两种效果。

沙丘是叶面的:.='\cross section。。。您可能需要使用这种初始形状

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

它们被风拉长

我没有使用第一个条件,但我通过将2个1d perin噪波相乘,甚至是2个sin/parabol函数,它们都排列在一个轴上,从而生成了巨大的沙丘。i、 它们有一个小的低频正弦或噪声沿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倍,这就像两个直线水波以几乎相同的角度相遇一样,再加上一个不确定性变量,使用噪声作为角度