Комментарии 10
ого
Какого %% Зачем вы выбрали равноугольную проекцию (а проекция Меркатора (1569 г.) - равноугольная)? Равноугольные - это с сохранением углов.
В таких случаях очень желательно во-первых, брать равновеликие проекции (с сохраненением площадей). Во-вторых, желательно с сохранением пропроций.
Например, Гиперэллиптическая проекция Тоблера (1973 г.)
Или РавноЗемельная проекция (2018 г.) ( https://en.wikipedia.org/wiki/Equal_Earth_projection )
Ну тут все просто, проекция Меркатора является стандартом. И поскольку нам нужно соотнести координаты в игре с координатами на гугл картах, логично использовать такой же метод проекции
Я бы переформулировал вопрос. Не важно в каком формате беруться данные, а вот как они ложаться на сферу будет значимым. Особенно для полюсов, если у вас для построение высот у меша сохраняется подобие сетки меркатора. Можно воспользоваться уже имеющимся у вас аналогом интерполяции и строить сам меш детализируя икосаэдр
А вообще, проект Outerra я думаю эту тему достаточно хорошо раскрыл.
Отличная статья, тоже всегда было желание сделать полноценный мир, на основе процедурной генерации. Только в качестве геоданных использовал OSM.
Спасибо за статью
Интересно, нельзя ли для этого приспособить DEM (растры в формате geotiff, где у каждого пикселя есть значение высоты)? Тайлы 1 на 1 градус, разрешение 30 метров, ограничения на скачивание вроде нету. Например отсюда или отсюда.
И, если я правильно понял (разделив один градус – 111 км – на 0.0003156), разрешение вашей карты высот получилось ~35 метров на ячейку?
Если честно ничего не знаю о формате DEM, но не вижу никакой принципиальной проблемы. Просто нужно будет переписать импорт высот.
По поводу разрешнеия, количество метров в тайле зависит от выбранного зума на гугл картах. А вот разрешение высот статично и зависит от AirMap. Там получается около 1 точки на 8 метров
На основе этой статьи, сделал небольшой набросок на Unity. Реализация конечно оставляет желать лучшего, но получилось забавно. Если кто хочет, могу написать статью об особенностях реализации на Unity
Бесплатный левел-дизайн, или как строить ландшафт в реальном времени на UE4