隨機地形生成
回答
基本上你可以在你生成的地形上定義和應用一組過濾器。
我不能進入全面的細節,但我會提供一些提示你到谷歌:
- 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. XNA隨機瓦/地形生成教程?
- 2. 在Blender3D中生成隨機地形
- 3. 用於隨機地形生成的Java 2D Perlin噪聲
- 4. C#生成一個隨機IP地址
- 5. 高效地生成離散隨機數
- 6. 生成一個隨機的mac地址
- 7. 生成隨機數
- 8. ArrayList隨機生成
- 9. 隨機數生成
- 10. Javascript隨機生成
- 11. 生成隨機ASCII
- 12. 生成隨機數
- 13. 生成隨機圖
- 14. 隨機數生成機制
- 15. 通過隨機字符生成生成隨機名字太慢
- 16. Xna隨機瓷磚地形
- 17. 快速隨機生成器
- 18. 隨機報價生成器
- 19. C#XNA - 隨機房生成
- 20. 僞隨機的URL生成
- 21. 生成隨機數據
- 22. 生成隨機密碼
- 23. 隨機文本生成器
- 24. 生成隨機日期
- 25. 隨機枚舉生成
- 26. 隨機種子生成
- 27. 從plist生成隨機名
- 28. 隨機生成變量名?
- 29. 生成隨機XML文檔
- 30. 生成隨機字符串
好的謝謝,現在使用Google搜索:D – 2011-12-21 17:32:43