Saya telah membuat peta ketinggian acak dan sekarang saya ingin membuat sungai. Saya telah membuat algoritma yang didasarkan pada * untuk membuat sungai mengalir dari puncak ke laut dan sekarang saya sedang mencari tahu algoritma yang elegan untuk membuatnya.
Ini adalah 2D, persegi, mapgrid. Sel-sel yang pases sungai memiliki nilai integer sederhana dengan bentuk ini: rivernumber && pointOrder. Yaitu: 10, 11, 12, 13, 14, 15, 16 ... 1 + N untuk sungai pertama, 20,21,22,23 ... 2 + N untuk yang kedua, dll. Ini dibuat dalam memetakan waktu pembuatan kisi dan dijalankan hanya sekali, saat dunia dihasilkan.
Saya ingin memperlakukan setiap sungai sebagai vektor, tetapi ada masalah, jika sungai yang sama memiliki cabang (karena saya mengeluarkan suara untuk menghasilkan cabang), saya tidak bisa hanya menghubungkan titik-titik secara berurutan.
Alternatif kedua adalah untuk menghasilkan algoritma yang kompleks di mana menganalisa setiap titik, memeriksa apakah yang berikutnya bukan cabang, jika demikian memicu algoritma lain yang merawat cabang kemudian kembali ke sungai utama, dll. Sangat kompleks dan tidak elegan.
Mungkin ada solusi dalam algoritma generasi dunia atau algoritma rendering sungai yang umum digunakan dalam kasus ini dan saya tidak menyadarinya.
Ada tips? Terima kasih!!