Ecco una tecnica che ho sperimentato di recente. Il mio prototipo di RenderMonkey mostra una sezione di canyon in stile calanchi, ma lo stesso principio dovrebbe funzionare nelle grotte.
L'idea è di iniziare con tessere che sono generiche, decisamente noiose, con bordi semplici e prevedibili, quindi sono facili da allineare senza cuciture o lacune:
Queste tessere di partenza potrebbero essere forme che hai modellato o tubi di maccheroni di geometria cilindrica generati proceduralmente (questa forma è una variante dei suggerimenti di bcrist e Steven Stadnicki). L'uso dei modelli che hai creato semplifica la gestione di topologie arbitrarie come percorsi di diramazione o punti di interesse come caverne aperte. Questo è ancora possibile con puro procedimento (vedi il suggerimento di Gyroninja sulle tecniche di metaball), ma stimolante.
Una volta posizionata una piastrella nel mondo, sposta i suoi vertici usando le funzioni di rumore applicate nello spazio del mondo. Ciò preserva la connettività e la continuità tra le tessere (poiché i vertici coincidenti hanno lo stesso input di spazio del mondo e ottengono lo stesso output di spostamento), ma rendono ogni tessera unica e organica:
Trama e normali vengono applicati anche nello spazio del mondo - qui usando la mappatura triplanare - in modo che le piastrelle adiacenti siano completamente senza soluzione di continuità, senza complicati vincoli di scartamento UV.
La speranza è che una tecnica come questa ti dia la facilità di pianificazione e controllo del livello di progettazione di una mappa piastrellata, senza ripetizione visibile o struttura dall'aspetto meccanico nel risultato giocabile.
È possibile utilizzare una mesh a bassa risoluzione con solo i componenti di rumore a bassa frequenza applicati per creare la rappresentazione della collisione. Come osserva Bcrist, dovrai controllare la massima ampiezza del rumore rispetto al raggio e alla nitidezza delle curve del tunnel, per assicurarti che non si stacchi mai completamente.
Un'ulteriore nota: se la tua caverna è davvero infinita, potresti doverla "periodicamente" periodicamente man mano che il giocatore si sposta sempre più lontano dall'origine. Poiché i numeri in virgola mobile perdono precisione ad altezze elevate, la fisica e gli artefatti di rendering possono insinuarsi a distanze estreme. Se lo fai, vorrai che il tuo rumore dello spazio del mondo sia periodico su larga scala, con il periodo esattamente corrispondente al tuo offset di recente, quindi non incontri cuciture dopo il recente.