Задать вопрос

Генератор поверхности планеты (генератор карт)?

Добрый день.


Для своей игрушки возникла мысль сделать случайную генерацию поверхностей планет (2D). У нас есть процентное соотношение элементов, из которых состоит планета, на основе которого мы вычисляем процентное соотношение элементов на поверхности планеты. Каждому элементу соответствует определенный цвет (допустим: вода — 70%, голубой или белый у полюсов; почвы — 20%, зеленый; песчаники — 10%, желтый; соединения кремния — 10%, темно-коричневый или черный). Соответственно нужно сгенерировать карту планеты, состоящую из указанных цветных областей указанной площади (не обязательно они могут быть в одном месте — должны быть океаны, континенты, моря). Каким образом можно осуществить генерацию карты? Какие есть алгоритмы?


Поскольку игрушка 2D, то вращение планеты будет осуществляться таким образом: по сгенерированной прямоугольной карте будет двигаться круг, область внутри которого и будет отображаемой поверхностью планеты. Оптимален ли этот способ или существуют лучше? Какую картографическую проекцию следует использовать в этом случае и как учесть это при генерации?
  • Вопрос задан
  • 17904 просмотра
Подписаться 14 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 6
@Aquahawk
en.wikipedia.org/wiki/Perlin_noise
Супер крутая штука для этого
Ответ написан
Комментировать
vldkr
@vldkr
Если полюса планируете делать необитаемыми, то лучше всего подойдёт проекция Меркатора.
Главный минус проекции в том, что карта сильно деформируется к полюсу. Положительные особенности таковы, что, во-первых, проекция равноугольная; во-вторых, деформации пропорциональные (круг на экваторе остаётся кругом ближе к полюсу)
Ответ написан
vldkr
@vldkr
Дельный XKCD комикс в тему. А вообще, лучшая карта — это глобус.
Ответ написан
Комментировать
@orangeflute
Используйте алгоритмы процедурного генерирования (Procedural Content Generation Algorithms). Вот тут можно о них почитать.
Ответ написан
Комментировать
Также можете посмотреть на библиотеку libnoise.
Ответ написан
Комментировать
@Robotex Автор вопроса
А если просто генерировать случайные числа (скажем от 1 до 100) и в зависимости от процентного соотношения цвета ставить тот или иной пиксель на карте? Т.е. случайно разбросать все.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы