开源分形图
我对创建一款使用分形地图以获得更真实地理环境的游戏感兴趣。但是,我发现的唯一分形贴图程序仅适用于Windows,例如Fractal Mapper。不用说,它们也不是开源的。
是否有开放源代码的分形地图创建者,最好使用Python或者C / C ++?理想情况下,我希望可以将某些东西"插入"程序中,而不是独立运行。
解决方案
Fracplanet可能有用。
我们是否已经尝试在sf.net上搜索分形?
基本的地形生成包括创建高度图(图像)并使用像素颜色作为高度对其进行渲染。因此,我们可能会发现图像或者纹理生成代码很有用。这是一个很好的教程。
对于地形方面,请看一下libnoise。
它是为Debian打包的,并且具有出色的文档,其中包括有关使用示例C ++代码进行地形生成的章节。
当然,"地图"除了在高度字段上拍一些颜色外,还有很多其他功能(例如,Fracplanet添加了河流和湖泊)。通过这些方法获得的地形实际上并不现实。各大洲通常不会从海岸上升到多岩石的腹地,因此,模拟大陆的漂移,山区建设和侵蚀过程可能会有所帮助(或者是假的)。然后,如果我们想要植被或者生命形式的人工制品(例如,道路和城镇)来填充地图,则可能需要查看细胞自动机或者其他"人工生活"工具。最后,虚拟地形项目非常值得浏览,以获取更多链接和想法。
如果我们想要真正逼真的地理环境,则可以使用NASA的SRTM数据集,也可以结合使用OpenStreetMap功能。 :-)
我强烈建议我们购买一份
纹理和建模:一种程序化方法
我看到它现在已经是第三版了(我只有第二版),但其中挤满了很多有关程序纹理的用法的有用文章,包括有关在分形地形中使用它们的几章。它也从对噪声算法的广泛讨论开始,因此我们拥有从基础到更高的一切。作者包括Musgrave,Perlin和Worley,所以我们真的做得更好。
一个非常简单的实现是使用中点位移分形,http://en.wikipedia.org/wiki/Diamond-square_algorithm,或者使用更为复杂的Diamond-Squares算法。
http://www.gameprogrammer.com/fractal.html#diamond
这些算法与Photoshop中的"差异云"相似。