三维随机分形地形生成(5)
发布时间:2021-06-07
发布时间:2021-06-07
其次,它是个非常简单的算法,然而你能创建非常复杂的结果。这正是分形算法的美妙之处。一些简单的指令可以建立一个具有丰富细节的图像。
再跑一下题:少量简单的指令集能够生成复杂图像的事实已经成为一个新的研究领域称为分形图像压缩。其思想是保存建立图像的递归指令而不是保存图像本身。这对于自然界的分形图像是极有用的,因为指令相对图像占用的空间要少得多。 Choas (混沌)与 Fractals (分形) new Frontiers of Science 有一章及一个附录涉及本主题,是一般学习分形的好读物。
回到现实。
不用太费劲,你可以读取本函数的输出到一个绘制程序而得到类似如下的东西:
这可作为窗口景色使用。相关的好东西是它是约束的,所以你可以保留一个相当的小图像并用它拼出整个场景。如果你不介意在每个方向都看见相同的山,那就这么干。
好的,在进入 2D 分形表面之前,你得了解粗糙度常量。这个值决定每次循环随机数值域的减少量,也就是说,决定分形结果的粗糙程度。例子代码使用一个 0.0 到 1.0 之间的浮点数并称之为 H 。因此 2(-h) 是 1.0( 对于小 H) 到 0.5 (对大 H )范围内的数。随机数范围在每次循环时乘上这个值。如果 H 设为 1.0 ,则随机数范围将每次循环减半,从而得到一个非常平滑的分形。将 H 设为 0.0 ,则范围根本不减小,结果有明显的锯齿感。
下边是三个山脊,每个用不同的 H 的值绘制: