Я мушу сказати стежками, а не дорогами, оскільки я думаю, що подібні до середньовічних. Також не шукаючи реалізму. Відповідь, яку я шукаю, буде вписуватися у форму, яку я описую, а не в реалізм.
Я шукаю метод генерування процедурних доріг / річок у кривий спосіб, але я хочу це зробити для системи нескінченного типу місцевості. Так само, як перлін-шум генерує краплі, я хочу створити відрізки ліній випадкової довжини (можливо, нескінченну довжину).
Мені відомі такі стратегії, як запропонований відповідь, знайдений тут , однак він покладається на заданий початок і кінцеву точку роботи, у мене немає вказаної точки початку і кінця. Я хотів би мати можливість просто викликати функцію за допомогою довільних координат і повернути її, чи є конкретні координати частиною річки / дороги.
Я не хочу заздалегідь вимагати генерування місцевості. Це включає карту висоти (як, наприклад, для моделювання опадів або подібне). Я також не хотів би вимагати початкової / кінцевої точки.
Чи є такий алгоритм чи підходить до алгоритму шуму, який би хтось міг знати, щоб виконати те, що я намагаюся пояснити?
Найближче до якого я прийшов поки що - це багатогранні фрактали, якщо я правильно використовую ім’я. Я просто приймаю абсолютне значення шумового значення (припустимо, що воно масштабується до -1 до +1) і встановлюю поріг. Моя основна проблема в цьому полягає в тому, що лінії занадто часто перекриваються, переважно кругові, іноді сходяться, утворюючи великі озера, які є акуратними, але небажаними, і часто разів товщина ліній змінюється занадто сильно.
Ось малюнок того, що я маю до цих пір у 2D, але з дуже високою частотою, щоб показати більше деталей: