Как стать автором
Обновить

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

А зачем нужно разрешение, если нужна только карта высот, которая как я понял — вполне достоверна?

Я говорю про разрешение карты высот. Она достоверна, но у неё низкое разрешение.

Это смотря о какой местности идет речь.
Данные близкого к глобальному покрытия — SRTM (доступна, в том числе, версия с разрешением 1 угловая секунда, т.е. около 30 метров на точку), ASTER GDEM — тоже 30 метров на точку (эта модель получена обработкой стереосъемки), AW3D30 — набор данных от космического агентства Японии, тоже 30 метров, но эта модель получена огрублением более подробной (коммерческой) модели.
А национальные наборы данных бывают куда подробнее, скажем — NED на територию США имеет разрешение от 10 до 1 метра на пиксель.
Вторая не менее проблема — они до 60-й широты. У нас полстраны севернее, если не 2/3…
Модель ASTER GDEM этого недостатка не имеет. https://asterweb.jpl.nasa.gov/gdem.asp
В Outerra эту проблему решили процедурной генерацией деталей ландшафта поверх реальных данных. Реальных данных, это, конечно, не заменит, но выглядит неплохо.
НЛО прилетело и опубликовало эту надпись здесь
Эх, опередили меня, тоже хотел про рельеф из SRTM написать, только с реализацией на WebGL.
тоже хотел про рельеф из SRTM написать, только с реализацией на WebGL

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

Пардон, разве не про это была статья?
не про это

Я имел ввиду реализацию цепочки
geotiff -> png -> raw -> terrain
которую можно провернуть используя gdal + photoshop/gimp

В статье же цепочка
geotiff -> bin -> terrain
без преобразования в промежуточные растровые форматы и без потери информации из geotiff

P.S.: И GeoTIFF совсем не карта высот в том смысле, в котором она применяется в юнити при использовании генерации из raw
Надо на это накладывать текстурки со спутников. Как отправную точку для текстурки, шейдеров и т.п. Или это плохая идея?
Определенная проблема с таким подходом — то, что с данными вы работаете в так называемой географической проекции, а в ней форма объектов достаточно сильно искажена — они тем сильнее растянуты вдоль параллелей (линий широты), чем дальше место от экватора.

Это решается либо перепроецированием данных в какую-либо прямоугольную систему координат, либо, если площадь сильно ограничена (сотня километров с юга на север), введением простого множителя для сжатия карты вдоль параллелей — косинуса широты, центральной для рассматриваемого фрагмента.
Интересная статья, сам много работал с данными SRTM, правда в целях картографии. Сам пробовал делать визуализацию на UnrealEngine, но все не хватает времени разобраться как GeoTIFF нормально в сцену добавить.
Ещё было бы интересно почитать что-то подобное про использование карты высот полученной с аэрофото )

SRTM хорош для рендеринга обзорных сцен больших территорий, когда требуется «крупный» план нужно уже искать более детальные данные, для каких-то участков можно найти данные по аэрофото, иногда даже карты высот по данным лидаров.
Еще отдельная не тривиальная задача обеспечить плавный переход от SRTM к более точным данным — низкое разрешение SRTM может привести к тому, что перепад высот на границах может достигать 80-90 метров. Самое простое решение максимально подогнать высоту более точных данных к менее точным и не допускать появления перехода в одном кадре, или маскировать его какими-то объектами.
В растровых ГИС вопрос перехода решается множеством разных способов, от интерполяции в кольцевом буфере вдоль границ, до всякой достаточно примитивной растровой арифметики.
Не уверен, что такие подходы без проблем транслируются в 3d моделирование. В том плане, что у нас получится один большой mesh с большой площадью в низком разрешении и маленькой в большом, что вероятно негативно скажется на скорости отрисовки. Сугубо ИМХО, опыт моей работы с игровыми движками стремится к нулю )
Хотя думаю, что ничего не мешает сначала обработать растр а потом вырезать из него фрагмент уже подогнанный по высоте
А зачем это туда транслировать, если действительно, можно обработать растр сначала? Но это, конечно, зависит от конкретной задачи.
На terrain.party можно сразу взять карту высот выделенной области. Останется только сконвертировать PNG > RAW и импортировать в Terrain.
terrain.party

Да, довольно удобно. Но есть недостатки:

1. Нельзя точно указать границы выбранного участка, а значит к загруженному рельефу не привязаться (что мне требуется) — на выхлопе только png heightmap
2. На равнинных участках получается абсолютно черный png, а метод предлагаемый в статье для тех же участков дает вполне точные перепады высот
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации