我有兴趣创建一个使用分形图来获得更真实地理的游戏。但是,我发现的唯一的分形图程序仅限Windows,例如Fractal Mapper。不用说,它们也不是开源的。
是否有可用的开源分形图创建器,最好是Python或C / C ++?理想情况下,我想要一些可以“插入”程序,而不是独立的东西。
答案 0 :(得分:9)
Fracplanet可能有用。
答案 1 :(得分:4)
基本地形生成涉及创建高度图(图像)并使用像素颜色作为高度渲染它。因此,您可能会发现图像或纹理生成代码很有用。这是good tutorial。
答案 2 :(得分:1)
对于地形方面,请查看libnoise。 它是packaged for Debian,并且有一个很好的文档,其中有一章terrain generation,带有示例C ++代码。
当然,除了在高度场上拍打一些颜色之外,“地图”还有很多(例如Fracplanet增加了河流和湖泊)。你从这些方法中获得的那种地形实际上并不那么现实;大陆通常不会从海岸上升到岩石腹地,所以可能模拟大陆漂移和山地建设以及侵蚀过程会有所帮助(或者fake it)。然后,如果你想要植被,或生命形式的人工制品(比如道路和城镇)来填充你的地图,你可能想看看细胞自动机或其他“人工生命”工具。最后,Virtual Terrain Project非常值得浏览更多链接和想法。
答案 3 :(得分:1)
我强烈建议您购买
的副本Texturing & Modeling: A Procedural Approach
我现在看到它的第三版(我只有第二版)但它包含了大量关于程序纹理使用的有用文章,包括几个关于它们在分形地形中使用的章节。它首先对噪声算法进行了广泛的讨论 - 所以你可以从基础知识向上发展。作者包括马斯格雷夫,佩林和沃利,所以你真的不能做得更好。
答案 4 :(得分:0)
如果您想要真实逼真的地理位置,可以使用NASA的SRTM数据集,或许可以结合OpenStreetMap功能。 : - )
答案 5 :(得分:0)
一个非常简单的实现方法是使用中点位移分形,http://en.wikipedia.org/wiki/Diamond-square_algorithm或稍微复杂的Diamond-Squares算法。 http://www.gameprogrammer.com/fractal.html#diamond
这些算法与Photoshop中的“差异云”类似。