Inilah teknik yang saya coba-coba baru-baru ini. Prototipe RenderMonkey saya menunjukkan bagian ngarai bergaya badlands, tetapi prinsip yang sama harus bekerja di gua.
Idenya adalah mulai dengan ubin yang generik, benar-benar membosankan, dengan tepi yang mudah diprediksi sehingga mudah untuk disejajarkan tanpa jahitan atau celah:
Ubin awal ini bisa berupa bentuk yang telah Anda modelkan, atau tabung makaroni yang dihasilkan secara prosedural dari geometri silinder (formulir ini adalah varian dari saran bcrist dan Steven Stadnicki). Menggunakan model yang Anda buat membuatnya lebih mudah untuk menangani topologi sewenang-wenang seperti jalur bercabang, atau tempat menarik seperti gua terbuka. Ini masih mungkin dengan prosedural murni (lihat saran Gyroninja tentang teknik metaball), tetapi menantang.
Setelah ubin ditempatkan ke dunia, pindahkan simpulnya menggunakan fungsi noise yang diterapkan di worldspace. Ini menjaga konektivitas dan kelancaran antar ubin (karena simpul bertepatan memiliki input ruang dunia yang sama, dan mendapatkan output perpindahan yang sama), tetapi membuat setiap ubin terlihat unik dan organik:
Tekstur dan normals juga diterapkan di worldspace - di sini menggunakan pemetaan triplanar - sehingga ubin yang berdekatan benar-benar mulus, tanpa kendala pembungkus UV yang rumit.
Harapannya adalah bahwa teknik seperti ini memberi Anda kemudahan perencanaan dan kontrol desain level dari peta ubin, tanpa pengulangan yang terlihat atau struktur yang tampak mekanis dalam hasil yang dapat dimainkan.
Anda dapat menggunakan mesh res rendah dengan hanya komponen noise frekuensi rendah yang diterapkan untuk membuat representasi collision. Seperti yang dicatat oleh bcrist, Anda harus mengontrol amplitudo maksimum kebisingan relatif terhadap radius dan ketajaman belokan terowongan, untuk memastikannya tidak pernah terjepit sepenuhnya.
Satu catatan lebih lanjut: jika gua Anda benar-benar tak terbatas, Anda mungkin perlu "membukanya kembali" secara berkala saat pemain bergerak semakin jauh dari tempat asalnya. Karena bilangan floating point kehilangan presisi pada magnitudo tinggi, fisika dan artefak rendering dapat merayap masuk pada jarak ekstrem. Jika Anda melakukan ini, Anda ingin noise ruang dunia Anda menjadi periodik dalam skala besar, dengan periode yang sama persis dengan offset recentering Anda, sehingga Anda tidak menemukan jahitan setelah recentering.