Voici une technique que j'ai expérimentée récemment. Mon prototype RenderMonkey montre une section de canyon de style badlands, mais le même principe devrait fonctionner dans les grottes.
L'idée est de commencer avec des carreaux génériques, carrément ennuyeux, avec des bords prévisibles simples afin qu'ils soient faciles à aligner sans coutures ni lacunes:
Ces tuiles de départ peuvent être des formes que vous avez modélisées ou des tubes de macaroni de géométrie cylindrique générés de manière procédurale (cette forme est une variante des suggestions de bcrist et Steven Stadnicki). L'utilisation de modèles que vous avez créés facilite la gestion d'une topologie arbitraire comme les chemins de branchement ou les points d'intérêt comme les cavernes ouvertes. Ceci est toujours possible avec une procédure pure (voir la suggestion de Gyroninja sur les techniques de métabille), mais difficile.
Une fois qu'une tuile est placée dans le monde, déplacez ses sommets à l'aide des fonctions de bruit appliquées dans l'espace mondial. Cela préserve la connectivité et la transparence entre les tuiles (puisque les sommets coïncidents ont la même entrée d'espace mondial et obtiennent la même sortie de déplacement), mais donne à chaque tuile un aspect unique et organique:
La texture et les normales sont également appliquées dans l'espace mondial - ici en utilisant la cartographie triplanaire - de sorte que les carreaux adjacents sont complètement sans soudure, sans contraintes de déballage UV difficiles.
L'espoir est qu'une technique comme celle-ci vous donne la facilité de planification et de contrôle de conception de niveau d'une carte carrelée, sans répétition visible ni structure d'aspect mécanique dans le résultat jouable.
Vous pouvez utiliser un maillage de résolution inférieure avec uniquement les composants de bruit basse fréquence appliqués pour créer la représentation de collision. Comme le note bcrist, vous devrez contrôler l'amplitude maximale du bruit par rapport au rayon et à la netteté des virages du tunnel, pour vous assurer qu'il ne se coince jamais complètement.
Une autre remarque: si votre grotte est vraiment infinie, vous devrez peut-être la "recentrer" périodiquement à mesure que le joueur s'éloigne de plus en plus de l'origine. Étant donné que les nombres à virgule flottante perdent en précision à des magnitudes élevées, la physique et les artefacts de rendu peuvent s'introduire à des distances extrêmes. Si vous faites cela, vous souhaiterez que votre bruit d'espace mondial soit périodique sur une grande échelle, avec la période correspondant exactement à votre décalage de recentrage, afin que vous ne rencontriez pas de coutures après recentrage.