Процедурно сгенерированная карта местности. Смешанные переходы между типами местности

10

Вопрос не самая лучшая формулировка извините.

Я изучал и создавал прототипы некоторых вещей для генерации текстур и ландшафтов и столкнулся с чем-то, с чем вы, возможно, сможете мне помочь.

Как это работает: я процедурно генерирую карту высоты местности. Он может бесконечно прокручиваться в любом направлении. (изображение 1) Я зажимаю и смешиваю цвета в зависимости от значения карты высот (изображение 2)

Это работает очень хорошо и работает очень быстро в настоящее время, в конце концов, это очень упрощенно.

Что мне нужно найти, так это хороший способ размытия / искажения между переходами ландшафта. Как вы можете видеть в настоящее время он имеет очень рельефные линии и выглядит не так уж естественно. Учитывая, что все это процедурно генерируется, мне, очевидно, нужно найти алгоритм для смешивания, которое может работать на лету. Я попытался немного дрожать, и это выглядело плохо. Кроме того, все, что я использую, должно быть в состоянии быть засеянным, чтобы оно сохраняло последовательность (хотя я сомневаюсь, что это будет проблемой, так как они, скорее всего, все будут работать на случайностях).

GreyScaleHeightMap ColorHeightMap
Любое понимание будет высоко ценится. Если мне удастся опустить любую необходимую информацию в моем спешке, чтобы опубликовать это, просто дайте мне знать.

Feltope
источник

Ответы:

14

Когда я сделал это, я сделал простой файл градиента (на основе xml или изображения, не имеет значения), который предопределил цвет, используемый на указанном расстоянии между основными цветами высоты (например, трава против песка). Таким образом, были промежуточные состояния. Что в этом хорошего, так это то, что вы имеете полный контроль над переходами.

Я полагаю, что вы могли бы также написать что-то, что находило бы смешанный цвет, основанный на расстоянии основного цвета по высоте, посредством какого-либо смешения, но, не будучи разработчиком за пределами хобби, я не знаком с такими технологиями (пока).

Вот некоторые градиенты, которые я использовал. Обратите внимание, что вы можете настроить цвета в зависимости от текущей высоты:

Более травяной / прибрежный: введите описание изображения здесь

Полный спектр: введите описание изображения здесь

И вот как это выглядело. Неплохо для фрактала при низкой детализации ...

введите описание изображения здесь

Кевин Пено
источник
Это потрясающе. Я не знаю, почему я не думал использовать градиент. Спасибо.
Фелтоп
Большой! Я рад, что смог помочь: D
Кевин Пено