1

可能重复:
菱形平方算法

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

所以基本上我要问的是,有没有人有我可以查看和调整的菱形正方形算法的 C++ 示例?

4

1 回答 1

8

您可以在此处找到该算法的有效 C++ 实现(请参阅噪声函数及其辅助函数)。

另请注意,该实现稍微复杂一些,因为它使用双三次插值来防止钻石平方算法使用标准双线性插值产生的伪影(请参见下图中的尖峰)。

在此处输入图像描述

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

于 2012-01-14T14:52:30.700 回答