5

我有兴趣创建一个使用分形地图以获得更真实的地理环境的游戏。但是,我发现的唯一分形映射程序仅适用于 Windows,例如Fractal Mapper。不用说,它们也不是开源的。

是否有可用的开源分形图创建器,最好是 Python 或 C/C++?理想情况下,我想要一些可以“插入”程序的东西,而不是独立的。

4

6 回答 6

9

Fracplanet可能有用。

于 2008-10-01T11:48:36.880 回答
4

基本地形生成包括创建高度图(图像)并使用像素颜色作为高度进行渲染。因此,您可能会发现图像或纹理生成代码很有用。这是一个很好的教程

于 2008-10-01T12:01:33.120 回答
1

对于地形方面,请查看libnoise。它是为 Debian 打包的,并且具有出色的文档,其中有一章介绍地形生成和示例 C++ 代码。

当然,“地图”不仅仅是在高度场上添加一些颜色(例如Fracplanet添加河流和湖泊)。你从这些方法中得到的那种地形实际上并不那么现实。大陆通常不会从海岸上升到岩石腹地,因此模拟大陆漂移、造山和侵蚀过程可能会有所帮助(或者,假装它)。然后,如果您想要植被或生命形式的人工制品(例如道路和城镇)填充您的地图,您可能需要查看元胞自动机或其他“人造生命”工具。最后,虚拟地形项目非常值得浏览以获取更多链接和想法。

于 2008-10-01T20:15:15.570 回答
1

我强烈建议购买一份

纹理和建模:一种程序方法

我看到它现在是第三版(我只有第二版),但它包含了很多关于使用程序纹理的有用文章,包括几章关于它们在分形地形中的使用。它也从对噪声算法的广泛讨论开始 - 所以你拥有从基础开始的一切。作者包括 Musgrave、Perlin 和 Worley,所以你真的不能做得更好。

于 2009-01-23T17:53:43.443 回答
0

如果您想要真正逼真的地理,您可以使用 NASA 的SRTM数据集,或许还可以结合OpenStreetMap功能。:-)

于 2008-11-03T14:29:12.717 回答
0

一个非常简单的实现是使用中点位移分形,http ://en.wikipedia.org/wiki/Diamond-square_algorithm ,或者更复杂的 Diamond-Squares 算法。 http://www.gameprogrammer.com/fractal.html#diamond

这些算法类似于 Photoshop 中的“差异云”。

于 2009-08-07T22:56:10.040 回答