Генерация 2D-ландшафта

#algorithm #generator #terrain

#алгоритм #генератор #ландшафт

Вопрос:

Как создается ландшафт в таких играх, как «Лунный багги», «Маршрут 960» или аналогичных?

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

Комментарии:

1. Вам следует попробовать задать на gamedev.stackexchange.com 🙂 (А также, вероятно, неплохо было бы начать с изучения синусоидальных волн)

Ответ №1:

 Initiate array of random heights

Blur:

foreach height in heights:
  new height = mean of all heights in radius N and center in current height
  

размытие удовлетворит вашему условию сглаживания

Ответ №2:

Вы хотите найти кривую заполнения пробела или пространственный индекс, например, кривую Гильберта или z-образную кривую. Он рекурсивно подразделяет поверхность на плитки и сводит 2d-задачу к одномерной задаче, но в основном это переупорядочивание плиток. Вы хотите поискать Ника в квадратичном дереве пространственного индекса Гильберта-curve blog.