Я должен сказать, что пути, а не дороги, как я думаю, более средневековые Также не ищу реализма. Ответ, который я ищу, будет соответствовать форме, которую я описываю, а не реализму.
Я ищу метод для создания процедурных дорог / рек в извилистой манере, но я хочу сделать это для бесконечной системы типов местности. Точно так же, как шум perlin генерирует капли, я хочу генерировать отрезки линий произвольной длины (возможно, бесконечной длины).
Мне известны такие стратегии, как предлагаемый ответ, найденный здесь , однако он основывается на заданной начальной и конечной точке работы, у меня нет указанной начальной и конечной точки. Я хотел бы иметь возможность просто вызывать функцию, используя произвольные координаты, и возвращать, являются ли конкретные координаты частью реки / дороги.
Я не хочу требовать, чтобы ландшафт был сформирован заранее. Это включает в себя карту высот (например, используется для моделирования дождя или аналогичного). Я также не хотел бы требовать начальной / конечной точки.
Есть ли такой алгоритм или настройка алгоритма шума, о котором кто-то может знать, чтобы выполнить то, что я пытаюсь объяснить?
Самое близкое, к чему я дошел, - это многоконечные фракталы, если я правильно использую название. Я просто беру абсолютное значение значения шума (при условии, что оно масштабируется от -1 до +1) и устанавливаю порог. Моя основная проблема в этом заключается в том, что линии слишком часто перекрываются, в основном круглые, иногда сходятся, образуя большие озера, которые аккуратны, но нежелательны, и часто толщина линий меняется слишком сильно.
Вот картина того, что у меня пока есть в 2D, но с очень высокой частотой, чтобы показать больше деталей: