Я работаю над трехмерным процедурным миром некоторое время и хочу начать добавлять пещерные системы. В настоящее время я использую 2D / 3D Perlin Noise для генерации ландшафта в сочетании с Marching Cubes для более гладкой местности. Я просто ошарашен, когда дело доходит до длинных соединяющих пещер.
Я надеюсь получить что-то более похожее на пещерные системы Minecraft. Они кажутся очень связанными, разветвляются случайным образом практически в любом направлении, и почти любая точка в пещере будет иметь довольно круглую форму с довольно равным радиусом повсюду (не самая лучшая формулировка, но не совсем уверен, как это можно выразить) ,
Самая большая проблема для создания пещер, как я хочу, состоит в том, что я хочу создавать мир на лету. Мир в настоящее время генерируется чанком чанком, начиная с того места, где находится игрок, и генерирует его оттуда наружу. Я НЕ хотел бы генерировать мир, а затем выкапывать пещеры, используя блуждающий паттерн, клеточные автоматы и т. Д.
Есть ли хорошо известные алгоритмы, которые можно использовать для этого? Если так, кто-нибудь хочет поделиться, как они делают что-то подобное? Я был бы очень признателен за любую помощь.
Хороший пример: