Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > 3D-программирование

3D-программирование Вопросы, касающиеся программирования 3D мира

Ответ
 
Опции темы
Старый 05.03.2010, 10:55   #1
voron
Нуждающийся
 
Регистрация: 10.09.2006
Сообщений: 77
Написано 3 полезных сообщений
(для 3 пользователей)
hgt файлы и построение на их основе рельефа

Доброго времени суток.
Я строю трехмерную карту, т.е. с отображением рельефа местности.
Данные высот беру с SRTM3 из *.hgt файлов.

Данные распространяются квадратами размером 1х1 градус, при максимальном доступном разрешение 3 арксекунды такой квадрат является матрицей размером 1201х1201 элементов (пикселей). Один дополнительный ряд (нижний) и одна колонка (правая) являются дублирующим и повторяется на соседней матрице.

Данные являются простым 16 битным растром (без заголовка), значение пиксела является высотой над уровнем моря в данной точке, пиксела также может принимать значение -32768, что соответствует значению no data (нет данных). Референц-эллипсоид данных - WGS84.

Название квадрата соответствует координатам его левого нижнего угла.

Например:
n45e136 /45 гр. с.ш., 136 гр.в.д

Для примера я построил район г. Эльбрус

Считываю таким образом

file_height=ReadFile("N43E042.hgt")
height=ReadByte(file_height)
x=0
y=0
While Not Eof(file_height)
height=ReadShort(file_height);

If (x>299) And (y>399) And (x<300+100) And (y<400+360) Then
hx=x-300
hy=y-400
nomer_vertex=hy*(razmer_x+1)+hx
x_vertex=VertexX(relief_surf,nomer_vertex)
z_vertex=VertexZ(relief_surf,nomer_vertex)
VertexCoords relief_surf,nomer_vertex,x_vertex,height,z_vertex
EndIf

При использовании OZI Explorer 3D получается нормальная карта Эльбруса, у меня же какая-та череда ущелий и возвышений, что неудивительно, данные считываются, например для
x=const y=1400, 1720, 1211, 2042, 1600 и т.д.

Может кто работал с этими файлами, как правильно осуществить считывание высот из них?
(Offline)
 
Ответить с цитированием
Старый 05.03.2010, 11:49   #2
Жека
Дэвелопер
 
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,376
Написано 491 полезных сообщений
(для 886 пользователей)
Ответ: hgt файлы и построение на их основе рельефа

Спасибо тебе, написанное выглядит мощным, я так хочу проникнуть в суть сказанного!
Сообщение от voron Посмотреть сообщение
как правильно осуществить считывание высот из них?
Как говаривали истинные капитаны: читать из файлов нужно в том порядке, в котором это предполагает структура читаемого файла.
Например, если записана "высота" в виде short'a со смещением в 500 байт от начала данных, то при чтении некоего short'a в позиции 500 тебе крайне желательно принять его за высоту.
А то, что файл hgt, а не wdt - редко играет хоть какую-то роль.
(Offline)
 
Ответить с цитированием
Старый 05.03.2010, 12:51   #3
IGR
Blitz's Shame !!
 
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений
(для 2,013 пользователей)
Ответ: hgt файлы и построение на их основе рельефа

Когда то пытался построить карту Украины но не получилось !!
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Dream (05.03.2010)
Старый 05.03.2010, 14:52   #4
voron
Нуждающийся
 
Регистрация: 10.09.2006
Сообщений: 77
Написано 3 полезных сообщений
(для 3 пользователей)
Re: hgt файлы и построение на их основе рельефа

Может кто строил уже. Описание формата я нашёл только такое (см. выше).

>А то, что файл hgt, а не wdt - редко играет хоть какую-то роль.

То, что hgt - это сразу бросается в глаза, как например jpg или b3d.
(Offline)
 
Ответить с цитированием
Старый 08.03.2010, 15:49   #5
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,358
Написано 2,472 полезных сообщений
(для 6,854 пользователей)
Ответ: hgt файлы и построение на их основе рельефа

Просветите неуча, вы о чём?
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Hurrit (08.03.2010)
Старый 09.03.2010, 20:51   #6
voron
Нуждающийся
 
Регистрация: 10.09.2006
Сообщений: 77
Написано 3 полезных сообщений
(для 3 пользователей)
Re: hgt файлы и построение на их основе рельефа

Есть данные радарной съёмки по 80% земной поверхности. Я на их основе пытаюсь построить трёхмерное карту г. Эльбрус. Сам меш в принципе строится, но высоты я из файла считываю неправильно
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Randomize (22.03.2010)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 11:08.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com