如何在C++中编写菱形平方算法?

rma*_*es4 2 c++ random algorithm 2d terrain

可能重复:
菱形方算法

我正在尝试使用菱形算法在我的2D游戏中生成地形.我找到了许多解释算法的资源,但没有实际显示如何在C++中实现它.我正在创建一个基于图块的游戏,并希望使用该算法生成随机世界(水,沙,草,山).我的计划是使用菱形平方算法的值来确定平铺.防爆.如果该值小于1,则为水.如果值大于10,山.等等.

基本上我要问的是,有没有人有一个我可以看到并调整的菱形方算法的C++例子?

Mat*_*ský 7

您可以在此处找到算法的C++实现(请参阅Noise函数及其辅助函数).

另请注意,该实现稍微复杂一些,因为它使用双三次插值来防止菱形平方算法使用标准双线性插值创建的伪像(请参见下图中的尖峰).

在此输入图像描述

免责声明:我是该项目的作者(可以根据GPLv2许可条款使用该代码)