Методика создания 3D моделей для GARMIN (Gukol) Для создания 3D объекта нам понадобятся следующие программы:
Google SketchUp ProSketchUp Pro – это инструмент 3D-моделирования для профессионального проектирования. Профессиональная версия SketchUp позволяет специалистам по проектированию анализировать и связывать сложные конструкторские идеи.
Используя SketchUp, вы можете выполнять следующие действия:
• Рисовать, изменять, измерять, вращать, масштабировать и перемещать геометрические фигуры.
• Использовать точные размеры и указывать их при помощи текста.
• Устанавливать плоскости сечения для просмотра и работы внутри моделей.
• Использовать в моделях заготовленные текстуры, такие как кирпич, дерево, черепица, стекло, либо создавать новые текстуры.
• Добавлять заготовленные компоненты, например деревья, автомобили, двери и окна, а также людей, либо создавать новые компоненты.
• Сглаживать поверхности.
• Моделировать тени в реальном времени для любого участка на Земле.
• Имитировать расположение камеры в пространстве.
• Создавать проходы.
• Создавать презентации.
• Использовать органическое моделирование (с помощью Песочницы).
• Импортировать 2D-изображения в следующих форматах:
- Изображение JPEG (.jpg)
- Portable Network Graphics (.png)
- Tagged Image File (.tif)
- Targa File (*.tga)
- Рисунок Windows (.bmp)
• Импортировать следующие 3D-модели и информацию:
- SketchUp (.skp).
- Рельеф Google Планета Земля. Примечание. Предусмотрена возможность получения текущего изображения (черно-белый снимок) местности, которая отображается в Google Планета Земля при помощи кнопки Получить текущий вид. Импортируются две версии изображений местности: 2D и 3D, при этом можно переключаться между ними с помощью кнопки Переключить местность. Изображения местности используются только для ссылок и не включаются в модель при ее расположении в Google Планета Земля. Изображение включает в себя ссылки на широту и долготу модели в Google Планета Земля, поэтому они могут быть также использованы для изучения теней. Программа Google Планета Земля не экспортирует собственные 3D-модели зданий (здания, которые отображаются при выборе слоя Здания в Google Планета Земля). Эта информация защищена и не может распространяться без разрешения правообладателя, следовательно, импортирование таких зданий в SketchUp не предусмотрено.
- 3DS (.3ds). Примечание. Для создания импортируемого 3DS-файла с текстурами необходимо сохранить файлы текстур в той же папке, в которой будет создан сам 3DS-файл.
- DEM (.dem, .ddf)
• Экспортирование 2D-изображений моделей:
- Изображение JPEG (.jpg)
- Portable Network Graphics (.png)
- Tagged Image File (.tif)
- Рисунок Windows (.bmp).
• Экспорт анимации и проходов в MOV- или AVI-файлы.
• Размещение моделей в Google Планета Земля. Размещение моделей SketchUp в Google Планета Земля выполняется при помощи команды Разместить модель. SketchUp автоматически определит используемую версию Google Планета Земля (3 или 4) и создаст соответствующий KMZ-файл. (Новые версии SketchUp и Google Планета Земля в настоящее время поддерживают отображение текстур и изображений в Google Планета Земля.)
• Экспортирование файла Google Планета Земля непосредственно в KMZ-формат (Google Планета Земля 3 или 4). Файлы Google Планета Земля 3 могут просматриваться в обеих версиях Google Планета Земля, но текстуры отображаются только в Google Планета Земля 4. Файлы Google Планета Земля 4 в Google Планета Земля 3 отображаться не будут.
• Обмен моделями в службе 3D-моделей. При отправке моделей, размещенных в Google Планета Земля, будут созданы файлы SketchUp (.skp) и Google Планета Земля 3 (.kmz). Если установлена новая версия SketchUp, то при отправке будет также создан файл Google Планета Земля 4 (.kmz).
• Предусмотрена печать части модели, отображаемой в области рисования программы SketchUp.
• Печатайте и экспортируйте растровые изображения с выбранным разрешением.
• Создавайте дополнительные программы при помощи языка программирования Ruby.
В дополнение ко всем возможностям, предоставляемым программой SketchUp, при использовании версии SketchUp Pro также доступны следующие функции:
Экспорт в следующие дополнительные 2D-форматы:
• Portable Document Format (.pdf)
• Encapsulated PostScript Format (.eps)
• Epix (.epx)
• AutoCAD (.dwg, .dxf)
Экспорт 3D-моделей в следующие дополнительные форматы:
• 3DS (.3ds)
• AutoCAD DWG (.dwg)
• AutoCAD DXF (.dxf)
• FBX (.fbx)
• OBJ (.obj)
• XSI (.xsi)
• VRML (.vrml)
Adobe PhotoshopAdobe Photoshop - многофункциональный графический редактор, разработанный и распространяемый фирмой Adobe Systems. В основном работает с растровыми изображениями, однако имеет некоторые векторные инструменты. Продукт является лидером рынка в области коммерческих средств редактирования растровых изображений, и наиболее известным продуктом фирмы Adobe.
Для начала берем фотоаппарат в руки и идем фотографировать интересующий нас объект. Фотографировать нужно так, чтобы искажений было как можно меньше. А лучше, чтобы их совсем не было. Если сторона здания прямоугольная, то и на фото в итоге она должна быть прямоугольной, а не трапецивидной.
После этого из полученных фото вырезаем нужные нам участки и делаем объединенную текстуру. Текстура должна быть размерами 512х512 пикселей в формате png. Размеры сторон здания не обязательно должны быть пропорциональны друг другу. Но их стороны должны соотноситься со сторонами полигонов нашего объекта, который мы будем создавать чуть позже. Фон объединенной текстуры лучше сделать непрозрачным. Например сделаем его белым. Если у нашего строения несколько сторон выглядят одинаково, то в нашей текстуре достаточно разместить картинку только одной стороны. Другими словами, не обязательно размещать свою текстуру для каждого полигона объекта. Создавать общую текстуру можно в FotoShop. Но если кому-то удобней в других графических программах, то это не возбраняется. Главное, в результате получить картинку в формате png размерами 512х512 пикселей. Вот, что в итоге у нас должно получиться:
Вложение:
2.jpg [ 38.06 КБ | Просмотров: 45745 ]
Как будет дальше видно, количество частей текстур меньше, чем количество полигонов в нашем объекте. Ну а теперь приступим непосредственно к созданию нашего 3D объекта. Для начала рекомендую создать самый простой объект - куб. Размеры объекта должны соответствовать реальным размерам дома, который мы собираемся создавать. Если сторона дома в реальности 50 метров, то и у нашего объекта соответствующая сторона (грань) должна быть тоже 50 метров. И так, нам нужна программа Google SketchUp Pro. Создаем новый объект - File->New. Человечка в нулевых координатах можно удалить. Нам он не нужен. Если есть спутниковый снимки участка, где располоден Ваш объект, то Вы можете разместить эту фото: File->Geo-location->Add Location. После выбираем нужный нам участок, масштаб и жмем Select Region. После центруем на нужном нам объекте (крестик - это нулевые координаты). Рекомендую сцентровать на каком-нибудь углу нашего строения.
Вложение:
3.jpg [ 24.38 КБ | Просмотров: 45745 ]
После жмем Grab и выбранный участок появится в окне моделирования. Теперь необходимо нарисовать саму модель. Я думаю не стоит тут описывать функционал программы SketchUp. Какждый сам разберется, как и что делать. В резльтат мы получаем вот такой домик:
Вложение:
4.jpg [ 15.05 КБ | Просмотров: 45745 ]
Теперь нам необходимо разместить на нашем объекте текстуру, которую мы подготовили чуть раньше. Делается это следующим образом. Выбираем Paint Bucket (ведрос с выливающейся желтой краской). У нас откроется окошко Materials. Нам нужно создать новый материал, который будет содержать нашу текстуру. Для этого в этом окошке нажимаем Create Material... (ящик с плюсиком в кругляшке). Откроется еще одно окошко. Выписываем там название нашего материала. Лучше латинскими буквами и с маленькой буквы. Выбираем файл нашей текстуры. Ниже выставляем размеры текстуры (тут можете поэксперементировать, потому что от этих размеров будет зависеть размер, который изначально нанесется на полигон). Жмем ОК. В окне Materials появится наша текстура. После этого курсором (ведро с желтой краской) выбираем полигон, на который хотим нанести текстуру. Получим вот такое:
Вложение:
5.jpg [ 15.19 КБ | Просмотров: 45745 ]
Теперь нам необходимо растянуть нужный участок текстуры (на котором расположена часть, которая должна покрыть выбраный полигон). Нажимаем правой кнопкой мыши на нужный полигон. В выпавшем окне выбираем Texture->Position. В резальтате видимо следующую картину:
Вложение:
6.jpg [ 20.27 КБ | Просмотров: 45745 ]
Тут мы видим 4 метки (красная, желтая, зеленая и синяя). Нам интересный красная и зеленая. Красная - это метка нулевых координат текстуры. При однократном нажатии на нее левой кнопкой мыши, появляется возможность перетаскивать эту метку (так же, как и другие). Перетаскиваем ее в один из углов нужного нам участка текстуры. Двигаем всю текстуру так, чтобы красная метка совпала с соответствующей частью полигона. Например, у нас квадратный полигон, и соовтетственно квадратная часть текстуры. Переносим красную метку в левый нижний угол нужного нам участка текстуры (например, это часть, которая покрывает тарец здания). После этого двигаем всю текстура так, чтобы эта красная метка оказалась тоже в левом нижнем углу полигона торца здания. Теперь таким же образом переносим зеленую в другую часть нужного участка текстуры. После этого начинаем растягивать текстуру, тянув в нужном направлении за зеленую метку, удерживая ее левой кнопкой мыши. В итоге получаем следующее:
Вложение:
7.jpg [ 20.6 КБ | Просмотров: 45745 ]
По аналогиии заполняем текстуруй все остальные полигоны. В итоге у нас готов объект, полностью заполненный текстурой.
Вложение:
8.jpg [ 13.45 КБ | Просмотров: 45745 ]
Все, объект готов. Но тут возникает один нюанс. Если Вы попытаетесь вставить его в карту в таком виде, то он будет расположен перепендикулярно, относительно поверхности карты. Поэтому нам необходимо его повернуть на 90 градусов относительно красной оси координат. Расскажу о том, какие оси куда направлены:
• Красная - в сторону востока.
• Зеленая - в сторону севера.
• Синяя - в небо.
В карте же для Гармин эти линии меняют ориентацию:
• Красная - в сторону востока.
• Зеленая - в сторону земли.
• Синяя - в сторону севера.
В итоге, наше строение должно быть расположено следующим образом:
Вложение:
9.jpg [ 11.2 КБ | Просмотров: 45745 ]
Делается это следующим образом. Сперва выделяем всю модель: Edit->Select All. После выбираем кнопку Rotate (две красные полукруглые стрелки). Подводим к нулевым координатам так, чтобы появившаяся шкала стала кросной (поворачивать будем относительно красной оси). После поворачиваем строение на 90 градусов.
Вложение:
10.jpg [ 12.13 КБ | Просмотров: 45745 ]
Теперь нашу модель необходимо конвертировать в подходящий для Garmin формат. А это файлы формата obj и mtl. Выполняем: File->Export->3D Model. Выбираем папку, куда сохранять. В итоге мы получим 2 файла *.obj и *.mtl. Там же будет папка, в которой расположена наша текстура. После конвертации увидимо следующее окошко, в котором необходимо обратить внимание на выделенные строки. Обязательно должны быть 1 материал и 1 текстура.
Вложение:
11.jpg [ 14.86 КБ | Просмотров: 45745 ]
Текстуру из полученной папки можете разместить рядом с фалами *.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 и *.png текстура)
• MODEL_ORIG=lat=55.159348,lon=61.379063 (координаты объекта, которые соответствуют нулевым координатам в 3D редакторе)
Результат проделанной работы, на экране навигатора должен иметь вот такой вид:
Вложение:
1.jpg [ 23.03 КБ | Просмотров: 45745 ]
В заключении хочу сказать, что сперва лучше попробовать все это на самом элементарном объекте. Нарисуйте куб, прикрепите его к карте. Тогда сможете понять, что нужно доработать и подправить.
Оригинал статьи:
здесь