随机地形生成
回答
基本上你可以在你生成的地形上定义和应用一组过滤器。
我不能进入全面的细节,但我会提供一些提示你到谷歌:
- Voronoi图
- 侵蚀过滤器
- 扰动
- ...
对于河流,您可以创建一个voronoi图,在光单元之间有一条细的黑线。你可以有一些渐变,从黑暗到平稳过渡。然后,你可以用你生成的地形多重地绘制该图,从而有效地降低这些线的高度。加上你的地形的不规则形状,你可以得到一些非直的“原型”驱动程序。
接下来,您可以应用模拟雨水,水流和侵蚀的侵蚀过滤器,以获得更逼真和平滑的河流和湖泊。
这应该让你开始。
欲了解更多信息,支付VTerrain.org访问,例如这个页面:http://vterrain.org/Elevation/Artificial/,或该水模拟(水文):http://vterrain.org/Water/index.html#Hydrogeology
虽然它不是在Java中,Freeciv具有相当的可调谐随机地形网发电核心,你可能想阅读。
http://sourceforge.net/projects/freeciv/有来源;我没有看到它的公共存储库,在一个偶然的搜索。
或者,您可能会考虑使用genetic algorithm for terrain generation,因为它们倾向于产生非常好的伪现实结果。
生成高度图的一个很好而简单的方法是Diamond-Square algorithm。有关完整的教程和伪代码,请参见Generating Random Fractal Terrain上的这篇文章。
最常用的分形地形生成技术可以细分正方形或三角形,但Robert Krten在1994年7月号“Dr. Dobb's Journal”发表的文章“Generating Realistic Terrain”中描述了一个有趣的替代方法:
http://drdobbs.com/architecture-and-design/184409269
总之,地形开始表现为完全平坦的高度图。应用相继较小的故障,其中随机线一侧的所有元素都变得更高。平滑过程在最后模拟侵蚀。
- 1. 随机生成的方形地板
- 2. XNA随机瓦/地形生成教程?
- 3. 随机生成低聚地形
- 4. 生成随机矩形
- 5. 生成随机IPv6地址
- 6. Pygame随机地图生成
- 7. 随机生成一个形状
- 8. 生成随机的GeoJSON多边形
- 9. 在多边形中生成随机点
- 10. 如何生成随机凸多边形?
- 11. 用于随机地形生成的Java 2D Perlin噪声
- 12. 在矩形内(均匀地)生成随机点?
- 13. 高效地生成离散随机数
- 14. 生成一个随机的mac地址
- 15. C#生成一个随机IP地址
- 16. 随机数生成
- 17. 生成随机数
- 18. 生成随机图
- 19. 生成随机ROWID
- 20. 生成随机数
- 21. ArrayList随机生成
- 22. Haskell随机生成
- 23. 生成随机ASCII
- 24. 生成随机数
- 25. 生成随机词
- 26. 生成随机数
- 27. Javascript随机生成
- 28. 随机数生成
- 29. 随机数生成机制
- 30. 生成随机生日
好的谢谢,现在使用Google搜索:D – 2011-12-21 17:32:43