rss RSS Главная  |   СКАЧАТЬ  |   Другие карты  |   Статьи  |   Форум  |   Добавить POI  |   Обратная связь
Garmin :: Navitel Navigator :: CityGuide
Меню сайта
Давайте общаться
Вконтакте twitter
Кнопка сайта
Буду благодарен, если Вы разместите код моей кнопки у себя на сайте
Проект Челябинск - карты Челябинска для GPS навигации
Код:
3D объекты в карте для Garmin
Статьи
3D объекты в карте для Garmin


Небольшая инструкция по созданию 3D объекта и размещению его в карте для Garmin.

Для создания 3D объекта нам понадобятся следующие программы:
- SketchUp Pro
- PhotoShop

Для начала берем фотоаппарат в руки и идем фотографировать интересующий нас объект. Фотографировать нужно так, чтобы искажений было как можно меньше. А лучше, чтобы их совсем не было. Если сторона здания прямоугольная, то и на фото в итоге она должна быть прямоугольной, а не трапецивидной.
После этого из полученных фото вырезаем нужные нам участки и делаем объединённую текстуру.
Текстура должна быть размерами 512х512 пикселей в формате png. Размеры сторон здания не обязательно должны быть пропорциональны друг другу. Но их стороны должны соотноситься со сторонами полигонов нашего объекта, который мы будем создавать чуть позже. Фон объединенной текстуры лучше сделать непрозрачным. Например сделаем его белым. Если у нашего строения несколько сторон выглядят одинаково, то в нашей текстуре достаточно разместить картинку только одной стороны. Другими словами, не обязательно размещать свою текстуру для каждого полигона объекта. Создавать общую текстуру можно в FotoShop. Но если кому-то удобней в других графических программах, то это не возбраняется. Главное, в результате получить картинку в формате png размерами 512х512 пикселей.
Вот, что в итоге у нас должно получиться:
3D объекты в карте для Garmin

Как будет дальше видно, количество частей текстур меньше, чем количество полигонов в нашем объекте.
Ну а теперь приступим непосредственно к созданию нашего 3D объекта. Для начала рекомендую создать самый простой объект - куб.
Размеры объекта должны соответствовать реальным размерам дома, который мы собираемся создавать. Если сторона дома в реальности 50 метров, то и у нашего объекта соответствующая сторона (грань) должна быть тоже 50 метров.
И так, нам нужна гуглевская программа SketchUp Pro. На просторах интернета можно найти версию Pro (именно Pro) без проблем.
Создаем новый объект - File->New
Человечка в нулевых координатах можно удалить. Нам он не нужен.
Если есть спутниковый снимки участка, где расположен Ваш объект, то Вы можете разместить эту фото: File->Geo-location->Add Location. После выбираем нужный нам участок, масштаб и жмем Select Region. После центруем на нужном нам объекте (крестик - это нулевые координаты). Рекомендую сцентровать на каком-нибудь углу нашего строения.
3D объекты в карте для Garmin

После жмем Grab и выбранный участок появится в окне моделирования.
Теперь необходимо нарисовать саму модель. Я думаю не стоит тут описывать функционал программы SketchUp. Каждый сам разберется, как и что делать.
В результате мы получаем вот такой домик:
3D объекты в карте для Garmin

Теперь нам необходимо разместить на нашем объекте текстуру, которую мы подготовили чуть раньше.
Делается это следующим образом.
Выбираем Paint Bucket (ведро с выливающейся желтой краской). У нас откроется окошко Materials. Нам нужно создать новый материал, который будет содержать нашу текстуру. Для этого в этом окошке нажимаем Create Material... (ящик с плюсиком в кругляшке). Откроется еще одно окошко. Выписываем там название нашего материала. Лучше латинскими буквами и с маленькой буквы. Выбираем файл нашей текстуры. Ниже выставляем размеры текстуры (тут можете поэксперементировать, потому что от этих размеров будет зависеть размер, который изначально нанесется на полигон). Жмем ОК. В окне Materials появится наша текстура.
После этого курсором (ведро с желтой краской) выбираем полигон, на который хотим нанести текстуру. Получим вот такое:
3D объекты в карте для Garmin

Теперь нам необходимо растянуть нужный участок текстуры (на котором расположена часть, которая должна покрыть выбранный полигон).
Нажимаем правой кнопкой мыши на нужный полигон. В выпавшем окне выбираем Texture->Position. В результате видимо следующую картину:
3D объекты в карте для Garmin

Тут мы видим 4 метки (красная, желтая, зеленая и синяя). Нам интересный красная и зеленая. Красная - это метка нулевых координат текстуры. При однократном нажатии на нее левой кнопкой мыши, появляется возможность перетаскивать эту метку (так же, как и другие). Перетаскиваем ее в один из углов нужного нам участка текстуры. Двигаем всю текстуру так, чтобы красная метка совпала с соответствующей частью полигона. Например, у нас квадратный полигон, и соответственно квадратная часть текстуры. Переносим красную метку в левый нижний угол нужного нам участка текстуры (например, это часть, которая покрывает торец здания). После этого двигаем всю текстура так, чтобы эта красная метка оказалась тоже в левом нижнем углу полигона торца здания.
Теперь таким же образом переносим зеленую в другую часть нужного участка текстуры. После этого начинаем растягивать текстуру, потянув в нужном направлении за зеленую метку, удерживая ее левой кнопкой мыши.
В итоге получаем следующее:
3D объекты в карте для Garmin

По аналогии заполняем текстурой все остальные полигоны.
В итоге у нас готов объект, полностью заполненный текстурой.
3D объекты в карте для Garmin

Все, объект готов.
Но тут возникает один нюанс. Если Вы попытаетесь вставить его в карту в таком виде, то он будет расположен перпендикулярно, относительно поверхности карты. Поэтому нам необходимо его повернуть на 90 градусов относительно красной оси координат.
Расскажу о том, какие оси куда направлены.
Красная - в сторону востока.
Зеленая - в сторону севера.
Синяя - в небо.
В карте же для Гармин эти линии меняют ориентацию:
Красная - в сторону востока.
Зеленая - в сторону земли.
Синяя - в сторону севера.
В итоге, наше строение должно быть расположено следующим образом:
3D объекты в карте для Garmin

Делается это следующим образом. Сперва выделяем всю модель: Edit->Select All. После выбираем кнопку Rotate (две красные полукруглые стрелки). Подводим к нулевым координатам так, чтобы появившаяся шкала стала красной (поворачивать будем относительно красной оси). После поворачиваем строение на 90 градусов.
3D объекты в карте для Garmin

Теперь нашу модель необходимо конвертировать в подходящий для Garmin формат. А это файлы формата obj и mtl.
Делаем: File->Export->3D Model.
Выбираем папку, куда сохранять. В итоге мы получим 2 файла *.obj и *.mtl. Там же будет папка, в которой расположена наша текстура.
После конвертации увидим следующее окошко, в котором необходимо обратить внимание на выделенные строки. Обязательно должны быть 1 материал и 1 текстура.
3D объекты в карте для Garmin

Текстуру из полученной папке можете разместить рядом с фалами *.obj и *.mtl. Однако в таком случае необходимо будет внести изменения в файл *.mtl. Он открывается обычным редактором Блокнот. Нас интересует строка "map_Kd 2/chgaa.png". Заменяем ее на "map_Kd chgaa.png". Это ссылка на путь до нашей текстуры.
Если захотите переименовать файл текстур, так же необходимо внести изменения в файл *.mtl. Главное помнить, что название файла текстуры должно содержать только латинские буквы и цифры, и только маленькие буквы.
Если решите переименовать файл *.mtl, то необходимо внести изменения в файл *.obj (который тоже можно открыть Блокнтом). Нас интересует строка "mtllib 2.mtl". Это путь до файла *.mtl.
И так, все файлы упорядочили, все подготовили. Осталось сделать shape-файл, который мы будет подсовывать при компиляции карты.
Shape должен содержать следующие атрибуты:

NAME=chgaa (тут название вашего объекта, произвольное)
GRMN_TYPE=GENERIC_MANMADE (тут тип полигона из тех, что могут поддерживать высотность)
LINK_ID=1 (тут уникальный id объекта)
HGT_DP=0 (тут высота, которая, как я понял, должна быть равна нулю)
HGT_DP_FMT=M (в чем измеряется - метры)
MODEL=C:\mp2shp_1.09\3D\model001 (тут путь до папки, в которой будут размещаться *.obj, *.mtl и текстура)
MODEL_ORIG=lat=55.159348,lon=61.379063 (тут координаты объекта, которые соответствуют нулевым координатам в 3D редакторе)

Если нет опыта работы в в специализированных программах (MapInfo, например), то можно все эти данные вписать в дополнительные атрибуты полигона, который сделаете в GPSMapEdit. После с помощью Global Mapper сконвертируете в shape.

Все, теперь гарминовском конвертере указываете путь до этого shape-файла и в итоге получите созданный 3D объект в Вашей карте.

В заключении хочу сказать, что сперва лучше попробовать все это на самом элементарном объекте. Нарисуйте куб, прикрепите его к карте. Тогда сможете понять, что нужно доработать и подправить.

Проект Челябинск © Гусев Николай (gukol)





2.02.2014, 21:25 | Просмотров: 9124 | Напечатать


Вернуться на главную страницу
Погода
Новое на форуме
Релиз карты от 31.08.2022
Автор: sergey-ivanov00
21:12, 31.08.2022Ответов: 0
 
Релиз карты от 29.06.2022
Автор: sergey-ivanov00
21:19, 29.06.2022Ответов: 0
 
Релиз карты от 30.04.2022
Автор: sergey-ivanov00
19:52, 29.04.2022Ответов: 0
 
Релиз карты от 28.02.2022
Автор: sergey-ivanov00
21:18, 28.02.2022Ответов: 0
 
Николай (gukol) с Днем Рождения!!!
Автор: sergey-ivanov00
20:16, 21.02.2022Ответов: 2
 
Релиз карты от 30.01.2022
Автор: :-)
21:03, 02.02.2022Ответов: 3
 
:)_ Хорошее настроение_ :)
Автор: Тарас Карпович
22:34, 26.11.2021Ответов: 47
 
Релиз карты от 31.10.2021
Автор: sergey-ivanov00
17:56, 31.10.2021Ответов: 0
 
Релиз карты от 29.09.2021
Автор: :-)
14:59, 16.10.2021Ответов: 1
 
Релиз карты от 10.07.2021
Автор: :-)
20:15, 20.09.2021Ответов: 1
 
Главная  |   СКАЧАТЬ  |   Другие карты  |   Статьи  |   Форум  |   Добавить POI  |   Обратная связь
Copyright © 2007-2024 Николай Гусев (GUKOL) | Сергей Иванов (sergey-ivanov00) All Rights Reserved
Все материалы доступны исключительно для личного пользования в ознакомительных целях и не должны использоваться для последующего распространения или трансляции, а равно извлечения коммерческой выгоды.
В случае обнаружения Вами фактов продажи карт из раздела ПРОЕКТ ЧЕЛЯБИНСК, а также распространения иным другим способом третьими лицами, просьба немедленно сообщить с целью устранения правонарушения: sergey-ivanov00@mail.ru.
При перепечатке и использовании материалов ссылка на сайт www.chelmaps.ru ОБЯЗАТЕЛЬНА!
Наши реквизиты для оказания финансовой помощи Проекту: Яндекс.Деньги - 410013254285937
Яндекс цитирования