Страница 1 из 2

Как сделать 3D модель карты в масштабе 1:1

Добавлено: 22 окт 2010, 22:41
GTexan
Доброе время суток.

У меня трудность: необходимо сделать карту в масштабе 1:1 для opensource проекта MMO FPS/RPG игры.
Карта реальная Уральского региона точнее города Первоуральска.
Движок: Unity 3D (terrain можно сделать по RAW 8bit(16bit) но не больше чем 4096x4096)

Попытка решить данный вопрос мной не увенчалась успехом:
Все что имею на компе: Win XP 32 SP3
SAS.Планета
MICRODEM
ArcGIS 9
Global mapper 12
Google Планета Земля
Surfer 9
GeoControl
GoogleMV
MapBuilder
и еще парочка OpenSource программ. (не считая другого ПО связанного с 3D моделированием и графикой)

Так же имеется SRTM (*.asc) файлы все участка карты который нужен.

Сразу оговорюсь я в картостроении ноль, поэтому все что я пытался сделать выдернуть всю карту с разу одним файлом (не вариант: во первых большинство программ ругаются на то, что размер будет галактическим, если учесть что я сразу же пытаюсь сделать масштаб 1:1 и с этой ошибкой закрываются, во вторых я ограничен кусками по 4096px на 4096px, ну и в третьих если я пытаюсь пилить карту кусками Microdem и Global mapper RAW файл делают не совсем такой какой нужен)

Большая просьба сильно не смеяться и не материть.
И если будет подробная инструкция как лучше сделать, буду признателен.

Заранее благодарен.

Re: Как сделать 3D модель карты в масштабе 1:1

Добавлено: 23 окт 2010, 19:19
Максим Дубинин
что именно вам нужно на входе в ваш движок?

какие данные у вас уже имеются кроме SRTM?

что по вашему означает масштаб 1:1?

Re: Как сделать 3D модель карты в масштабе 1:1

Добавлено: 23 окт 2010, 23:32
GTexan
>>> что именно вам нужно на входе в ваш движок?

одно канальный Raw файл 8 или 16 bit grayscale не более 4096x4096 (на каждый terrain)

>>> какие данные у вас уже имеются кроме SRTM?

имеется так же .hgt

>>> что по вашему означает масштаб 1:1?

по моему это масштаб 1px == 1мм. (раз это 3D Action/FPS то размер карты будет такой как в реальной жизни. Игрок в игре будет идти ровно столько сколько он бы шел сам. И расстояние пройденное им в игре по игровой карте не отличалось бы от расстояния в реальной местности. НО ЭТО В ИДЕАЛЕ).

Хотя как я в первом посте писал я профан в мапмэйкерстве поэтому и обратился к знающим людям т.е. к вам.
Т.е. если вы скажете что не реально такую карту сделать (я имею ввиду в масштабе таком) ну значит масштаб буду менять.

P.S.: знаю что максимальный масштаб который есть по elevation - это 90м и что при увеличении будет много шумов и артефактов на карте. Меня это не пугает потому как поправить проще чем рисовать всю карту от руки.

Re: Как сделать 3D модель карты в масштабе 1:1

Добавлено: 24 окт 2010, 17:21
Максим Дубинин
а какой нужен RAW?

есть работающий пример?

Re: Как сделать 3D модель карты в масштабе 1:1

Добавлено: 24 окт 2010, 22:34
GTexan
>>>> а какой нужен RAW?
>>>> есть работающий пример?
Да есть TYT RAW 16bit 512x512 grayscale

Re: Как сделать 3D модель карты в масштабе 1:1

Добавлено: 25 окт 2010, 00:25
Максим Дубинин
Чем вы сами такие RAW смотрите?

Вот это похоже на то, что это есть?
Изображение

Re: Как сделать 3D модель карты в масштабе 1:1

Добавлено: 25 окт 2010, 04:40
GTexan
>>>> Чем вы сами такие RAW смотрите?
Adobe photoshop или irfanview

Photoshop покажет: Изображение

А IrfanView продемонстрирует:
Изображение

размеры изображения: 513x513
Канал: 1
BPP(Глубина): 16bit

В Photoshop`e сначала откроется черное изображение (что бы увидеть делаем следующее: Меню Изображение > Коррекция > Яркость/Контрастность параметр яркость выставляем в максимум. так 2 раза).

Описание формата:
цвет черный (#000000) - т.е. пол(земля, уровень по горизонту)
цвет белый (#FFFFFF) - т.е. самая верхняя точка по уровню горизонта (скажем вершина горы)

Re: Как сделать 3D модель карты в масштабе 1:1

Добавлено: 25 окт 2010, 05:26
Максим Дубинин
победил вроде в QGIS

Код: Выделить всё

BYTEORDER M
LAYOUT BIP
NROWS 513
NCOLS 513
NBANDS 1
NBITS 16
вот что получается:

Изображение

Так как результат похож, то осталось сделать обратное преобразование, HGT перевести в BIP:
1. Взять матрицы SRTM
2. Если нужно - порезать их на части (исходно они 1024 на 1024 пикселя так что под ваше ограничение пролезают)
3. Экспортировать с помощью gdal в EHdr (rw+v): ESRI .hdr Labelled

Re: Как сделать 3D модель карты в масштабе 1:1

Добавлено: 25 окт 2010, 05:39
GTexan
Такой не скромный вопрос а есть может где нибудь формат .hgt и SRTM для разработчиков.
Потому сколько я уже ковыряюсь, то мне проще будет прикрутить к Unity3D сам .hgt c SRTM.

Скармливаеш файлик а он сам тебе бьет их на terrain нужного размера и все хорошо.

Re: Как сделать 3D модель карты в масштабе 1:1

Добавлено: 25 окт 2010, 06:01
Максим Дубинин
так HGT это тоже RAW, вот пример заголовка:

Код: Выделить всё

BYTEORDER M
LAYOUT BIL
NROWS 1201
NCOLS 1201
NBANDS 1
NBITS 16
BANDROWBYTES 2402
TOTALROWBYTES 2402
BANDGAPBYTES 0
NODATA -32768
ULXMAP 136
ULYMAP 46
XDIM 0.000833333333333
YDIM 0.000833333333333

Re: Как сделать 3D модель карты в масштабе 1:1

Добавлено: 25 окт 2010, 12:30
GTexan
А как бы мне с масштабом поиграть? Это как раз к вопросу об 1:1 ?
Я так понимаю SRTM-90 это 1см - 90метров или я ошибаюсь?!

Re: Как сделать 3D модель карты в масштабе 1:1

Добавлено: 25 окт 2010, 15:16
Алекс
Это означает, что один элемент матрицы (грида) равен 90 м. Т.е. на квадратике 90х90м высота принята одинаковой. К масштабу отношения не имеет.

Re: Как сделать 3D модель карты в масштабе 1:1

Добавлено: 25 окт 2010, 15:34
GTexan
Тогда как сопоставить с масштабом? Текстура с google map у меня выдернута с приближением до 250метров. Как её сопоставить с рельефом? Скажем так как работать с масштабом?

[Сообщение с мобильного устройства] Изображение

Re: Как сделать 3D модель карты в масштабе 1:1

Добавлено: 25 окт 2010, 23:43
Максим Дубинин
что значит "работать с масштабом", "сопоставить с маштабом" и т.д.

поясните, что именно вам нужно сделать?

Re: Как сделать 3D модель карты в масштабе 1:1

Добавлено: 26 окт 2010, 07:57
GTexan
Масштаб 1:5000 т.е. в 1см - 5000 метров. Меня интересует масштаб 1:1 т.е. в 1см - 1см(а не 5000 метров).
В итоге что бы получился реальный размер пространства, а не его миниатюрная копия.