Llevo un tiempo trabajando en un mundo de procedimientos 3D y quiero comenzar a agregar sistemas de cuevas. Actualmente estoy usando 2D / 3D Perlin Noise para la generación del terreno en combinación con Marching Cubes para un terreno más liso. Me estoy quedando perplejo cuando se trata de largas cuevas interconectadas.
Espero obtener algo más como los sistemas de cuevas de Minecraft. Parecen estar muy conectados, ramificarse aleatoriamente en casi cualquier dirección, y casi cualquier punto de la cueva tendría un aspecto bastante circular con un radio bastante igual en todas partes (no es la mejor redacción, pero no está muy seguro de cómo decirlo) .
El mayor desafío para generar cuevas como quiero es que quiero generar el mundo sobre la marcha. El mundo se genera trozo a trozo actualmente, comenzando donde está el jugador y se genera hacia afuera desde allí. NO quisiera generar nada del mundo y luego excavar las cuevas usando un patrón errante, autómatas celulares, etc.
¿Hay algún algoritmo bien conocido que pueda usarse para esto? Si es así, ¿alguien quiere compartir cómo hacen algo similar? Agradecería mucho cualquier ayuda.
Un buen ejemplo: