Layar. Добавление 3D объектов. Импорт моделей из SketchUp.

К посту о создании слоя для браузера дополненной реальности Layar при помощи веб-сервиса Hoppala.

Интересно было бы заменить стандартную иконку "черной точки" или миниатюрную фотографию объекта на нашем слое "старого Екатеринбурга" на 3D-модель.
Можно самому создать 3D-модель в каком-нибудь редакторе, сохранить ее в формате .obj, а после конвертировать в перевариваемый Layar'ом формат .l3d.
Из доступных редакторов Blender и SketchUp.
Раз уж нас интересуют, скажем так, архитектурные 3D-модели для нашего слоя, то для этого идеально подойдет SketchUp.
Рекомендации и подробная инструкция по созданию модели в SketchUp для Layar тут, но сохранить модель в формате .obj возможно только в платной версии программы.
Ничего страшного, ведь до нас многими умельцами уже созданы целые 3D-коллекции городов и зданий. Этим и воспользуемся.
Загрузим существующие модели SketchUP, конвертируем их в формат .obj, и потом при помощи родного конвертора Layar'a (найти можно здесь) сохраним как .l3d файл.
Для примера, поставим три девятиэтажки на площадку перед Гринвичем.
Найдем подходящие девятиэтажки из коллекции готовых моделей SketchUP и сохраним их в формате Collada (.dae)
автор модели Юрий Пономарев
Откроем редактор 3D-графики Blender и импортируем файл .dae (предварительно распаковав сохраненный архив).
Теперь экспортируем загруженную в Blender модель в формате .obj.
Запустим конвертер Layar3D http://public.layar.com/downloads/Layar3DModelConverter.jnlp. Импортируем в него созданный при помощи Blender'а файл .obj.
Программа имеет 4 функциональные вкладки. Первая, понятно, отражает детали модели, ее физические размеры и занимаемый объем в байтах.
Вкладка "Материалы" это вся подноготная о текстурах объекта, их цвете размерах, объеме и типе (статические или анимированный).
Подробно о создании анимированной текстуры и работе с конвертером можно узнать в этой инструкции.
Текстуры у меня на этой модели загрузились сразу сами, но с возмущениями на несоответствие размерам.
Это и понятно, модель полноценная, а конвертер для Layara, отражающего все на экране мобильных устройств. Тяжелых и больших по размерам модель здесь не нужно, о рекомендациях к создаваемым моделям можно прочесть на сайте.
При работе с другой моделью, текстуры не загрузились, но их легко можно добавить из папки "images" первоначально скаченного файла.

Балуемся с вкладкой "Просмотр". Крутим-вертим!
В этой вкладке определяемся с местом расположения модели на карте. Определившись и нажав "Use Marker Position" можно масштабировать модель и поворачивать ее, изменяя значения полей "Scale" и "Angle".
Запомним полученные координаты и сохраняем модель.

Вернемся теперь к созданному в Hoppala слою.
Выберем место расположения нашего объекта.
Загрузим нашу сохраненную в нужном формате модель. Установим мастштаб и угол поворота модели на карте.
Продублируем ранее полученные координаты, хотя можно оставить и эти. Можно задать высоту (Altitude) точки.
Вот что получается при просмотре точки с телефона.
Пример демонстрирует в первую очередь возможности программы и существующих методов работы, но никак не готовое решение!

Есть свои недостатки при таком способе размещениz моделей без их тщательной обработки. Это их размеры, неточность привязки, "весомость" текстур, что отражается на скорости загрузки их в приложение.

При обкатке различных точек по городу было отмечено, что модели подгружаются только тогда, когда в настройках телефона (SE Xperia X8) "Мое Местоположение" определяется по двум составляющим: беспроводным сетям и спутникам GPS.
Но определение координат по беспроводным сетям в городе (лично у меня оператор МТС) скачет. То Новосибирск получается, то Владивосток...
Это может свести на нет точность задания местоположения точки в некоторых местах города.

Комментарии

Популярные сообщения из этого блога

Вариант прошивки полетного контроллера SP Racing F3 через stm32flash

Создание 3D модели по фотоснимкам. Python Photogrammetry Toolbox на Ubuntu 14.04.

Создание 3D модели голени по фотоснимкам. Часть 2. VisualSFM+MeshLab.