Comments 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 эту проблему решили процедурной генерацией деталей ландшафта поверх реальных данных. Реальных данных, это, конечно, не заменит, но выглядит неплохо.
UFO landed and left these words here
Эх, опередили меня, тоже хотел про рельеф из 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, а метод предлагаемый в статье для тех же участков дает вполне точные перепады высот
Only those users with full accounts are able to leave comments. Log in, please.