УДК 004
СОЗДАНИЕ ИНТЕРАКТИВНЫХ КРОССПЛАТФОРМЕННЫХ ПАНОРАМНЫХ ТУРОВ
Евгения Александровна Кшуманёва
Сибирский государственный университет геосистем и технологий, 630108, Россия, г. Новосибирск, ул. Плахотного, 10, магистрант, тел. (913)706-68-00, e-mail: [email protected]
Павел Михайлович Кикин
Сибирский государственный университет геосистем и технологий, 630108, Россия, г. Новосибирск, ул. Плахотного, 10, кандидат технических наук, старший преподаватель кафедры прикладной информатики и информационных систем, тел. (913)774-09-34, e-mail: [email protected]
В данной статье наиболее подробно рассмотрено создание тура на основе 3D движка. При разработке виртуального панорамного тура были выявлены проблемы, которые и рассмотрены в данной статье.
Ключевые слова: виртуальный тур, панорама, сшивка панорам, 3D unity, разработка.
REVIEW OF TECHNOLOGIES FOR INDOOR NAVIGATION
Evgenia A. Kshumaneva
Siberian State University of Geosystems and Technologies, 630108, Russia, Novosibirsk, 10 Plakhotnogo St., master student, tel. (913)706-68-00, e-mail: [email protected]
Pavel M. Kikin
Siberian State University of Geosystems and Technologies, 630108, Russia, Novosibirsk, 10 Plakhotnogo St., Ph. D., senior lecturer, department of Applied Informatics and Information Systems, tel. (913) 774-09-34, e-mail: [email protected]
In this article, the most detailed consideration is the creation of a tour based on a 3D engine. When developing a virtual panoramic tour, problems were identified that are considered in this article.
Key words: virtual tour, panorama, stitching of panoramas, 3D unity, development.
Виртуальный тур, он же виртуальная экскурсия - это новый метод отображения трехмерного пространства на экране, которое сопровождается привязкой дополнительных мультимедийных информационных компонентов: 3D объекты, видео и фотогалерея, поясняющие надписи, всплывающие окна с дополнительной информацией, графически оформленные клавиши управления. С помощью виртуальных 3D туров возможно перемещаться из точки в точку, заглядывать в отдалённые районы, приближать или наоборот отдалять отдельно взятые предметы. Таким образом, можно посетить города или достопримечательности, побродить по средневековым замкам, или обследовать выставленный на продажу объект недвижимости. Можно зайти в квартиру, пройтись по каждой комнате, рассмотрев все углы, окна, двери. Или прогуляться по загородному участку, осмотрев каждый кустик. Виртуальный фотопанорамный тур позволяет во всей красоте и масштабности передать все эмоции при интерактивном просмотре,
поэтому с каждым днем они набирают все большую популярность, так как практически «вживую» позволяют зрителю ознакомиться с окружающей обстановкой.
Применение виртуальных панорам очень многообразно, и не ограничивается какой-то одной сферой деятельности. Особенно актуально применение сферических панорам и виртуальных туров в следующих областях: строительство, недвижимость, торговля, развлекательная индустрия, автосалоны, ресторанный и гостиничный бизнес, производственная сфера и многие другие. По сути там, где можно описать объект фотографиями, можно сделать через виртуальный тур.
Создание виртуальных туров состоит из нескольких этапов в которые входят фотосъемка, создание 3D-панорам и создание самого тура. Каждый из этих этапов важен для создания виртуального тура высокого качества:
1. Фотосъемка сферических или цилиндрических панорам
2. Создание 3D-панорам виртуального тура
3. Создание виртуального тура
На данный момент не существует специально направленных программ для создания кроссплатформенных панорамных виртуальных туров. Каждый разработчик стремится сделать свои разработки доступными на железе разной архитектуры.
Целью проекта является создание интерактивного кроссплатформенного виртуального панорамного тура. Необходимость разработки вызвана отсутствием классплатформенных виртуальных туров, которые в свою очередь, как правило, имеют низкую интерактивность. Для достижения этой цели необходимо выполнить следующие действия:
- выполнить съемку объекта, которая представляет собой очень трудоемкий и крайне ответственный процесс, так как от его результатов напрямую будет зависеть качество панорамы,
- выбрать программу-сшиватель для создания фотопанорамы;
- создать фотопанораму из нескольких специально подготовленных перекрывающихся фотографий;
- провести обзор программ для создания виртуального тура;
- разработать классплатформенный виртуальный тур.
В большинстве случаях создание виртуального тура происходит в специальной программе. Программа работает на основе собственного движка, который обеспечивает максимальную гибкость и функциональность как при создании виртуального тура, так и при дальнейшем его использовании. Программы для построения туров имеют интуитивно понятный интерфейс. Они обеспечивают отличные результаты работы в короткий промежуток времени, но только при использовании идеальных снимков при сшивании панорамы. В итоге на разработку программного продукта затрачивается минимум времени, тогда как при использовании иных технологий для получения того же самого результата потребовалась бы неделя работы целой команды разработчиков.
Но стоит отметить два момента, касающихся построителей туров:
Во-первых, широко известных программ с такими возможностями совсем немного, а безоговорочным лидером в данной сфере считается американская
компания IPIX Corporation, являющаяся автором технологии виртуальных туров. Поэтому именно ее программные продукты чаще всего используются при разработке туров, в том числе и в России. Однако существуют ничуть не уступающие альтернативные варианты от других компаний, которые тоже позволяют получить отличные результаты, но стоят гораздо меньше.
Во-вторых, выбирая построитель туров, нужно иметь в виду, что здесь применяются несколько иные принципы оплаты программ. Если обычно при покупке программного обеспечения приходится платить за программу или приобретать для нее ограниченную по времени действия лицензию, то с построителями туров дело обстоит иначе, ведь кроме этого может потребоваться дополнительная оплата за используемые панорамы. По этой причине себестоимость виртуальных туров может оказаться гораздо выше ожидаемой. Однако существует и ПО, для которого реализован традиционный вид оплаты. Есть и полностью бесплатные программы, но тоже с оплатой создаваемых панорам.
Само создание виртуального тура начинается с того, что будущие 3D-панорамы загружаются в программу, описываются и выставляется начальный вид для каждой. Далее 3D-панорамы соединяются между собой переходами. После в виртуальный тур добавляются дополнительные элементы, слайдер и кнопки управления. Когда все готово запускается создание виртуального тура. Во время создания виртуального тура программа генерирует папку с файлами тура и пусковой файл. Получившийся виртуальный тур содержит в себе и FLASH и HTML5 версии.
Были рассмотрены такие построители туров как: Pano 2VR, Deval VR, IPIX Interactive Studio 1.4.2, IPIX Real Estate Wizard, IPIX i-Linker 3.1.0, Easypano Tourweaver, Panoweaver. Каждый из которых имеет свои преимущества и недостатки. Но они не кроссплатформенные и имеют относительно низкую интерактивность. Поэтому были рассмотрены другие варианты построения виртуальных туров. Ведь кроме специальных построителей туров, так же можно использовать другие программы, ничуть не уступающие построителям.
Построители туров используют свои движки, в то время как можно попробовать использовать другие, не специализированные 3D движки для создания кроссплатформенного виртуального тура. Для этого был выбран игровой движок unity 3D.
Unity - это инструмент для разработки двух- и трёхмерных приложений и игр, работающий под операционными системами Windows, Linux и OS X. Созданные с помощью Unity приложения работают под операционными системами Windows, OS X, Windows Phone, Android, Apple iOS, Linux, а также на игровых приставках Wii, PlayStation 3, PlayStation 4, Xbox 360, Xbox One и MotionParallax3D дисплеях (устройства для воспроизведения виртуальных голограмм), например, Nettlebox. Так же имеется возможность создавать приложения для запуска в браузерах с помощью специального подключаемого модуля Unity (Unity Web Player).
Программа объединяет в себе игровой движок и интегрированную среду разработки и включает в себя редактор уровней, работающий по принципу WYSIWYG. WYSIWYG (англ. What You See Is What You Get, «что видишь, то
и получишь») - свойство прикладных программ или веб-интерфейсов, в которых содержание отображается в процессе редактирования и выглядит максимально близко похожим на конечную продукцию, которая может быть печатным документом, веб-страницей или презентацией. Программа также широко использует понятие «визуальный редактор», что значительно упрощает процесс разработки, делая его доступным любителям-непрограммистам, и могут быть использованы в начальном обучении программированию. Приложения, созданные с помощью Unity, поддерживают DirectX и OpenGL.
Редактор Unity имеет простой Drag&Drop интерфейс, который легко настраивать, состоящий из различных окон. Движок поддерживает три сценарных языка: C#, JavaScript (модификация), Boo (диалект Python). Расчёты физики производит физический движок PhysX от NVIDIA.
Проект в Unity делится на сцены (уровни) - отдельные файлы, содержащие свои наборы объектов, сценариев, и настроек. Сцены могут содержать в себе как, собственно, объекты (модели), так и пустые игровые объекты - объекты, которые не имеют модели («пустышки»). Объекты, в свою очередь содержат наборы компонентов, с которыми и взаимодействуют скрипты. Также у объектов есть название (в Unity допускается наличие двух и более объектов с одинаковыми названиями), может быть тег (метка) и слой, на котором он должен отображаться. Так, у любого объекта на сцене обязательно присутствует компонент Transform -он хранит в себе координаты местоположения, поворота и размеров объекта по всем трём осям. У объектов с видимой геометрией также по умолчанию присутствует компонент Mesh Renderer, делающий модель объекта видимой.
К объектам можно применять коллизии (в Unity т. н. коллайдеры -collider). Существует несколько типов коллайдеров, в данном случае был использован тип Sphere collider. Sphere collider - это физическая модель, образующая сферу, в которую попадает вся модель объекта.
Unity поддерживает физику твёрдых тел и ткани, а также физику типа Ragdoll (тряпичная кукла). В редакторе имеется система наследования объектов; дочерние объекты будут повторять все изменения позиции, поворота и масштаба родительского объекта. Скрипты в редакторе прикрепляются к объектам в виде отдельных компонентов.
При импорте текстуры в Unity можно сгенерировать alpha-канал, mip-уровни, normal-map, light-map, карту отражений, однако непосредственно на модель текстуру прикрепить нельзя, для этого необходимо создать материал, которому будет назначен шейдер, и только потом материал прикрепится к модели. Шайдер был взят из интернета для прикрепления панорамы на сферу изнутри. Плюсом является то, что он может быть написан и редактирован в самом Unity. Редактор Unity имеет компонент для создания анимации, но также анимацию можно создать предварительно в ßD-редакторе и импортировать вместе с моделью, а затем разбить на файлы.
Unity 3D поддерживает систему Occlusion culling, суть которой в том, что у объектов, не попадающих в поле зрения камеры не визуализируется геометрия и коллизия, за счет этого снижается нагрузка на центральный процессор и позволяет оптимизировать проект. При компиляции проекта создается испол-
няемый (.exe) файл проекта (для Windows), а в отдельной папке - данные проекта (включая все уровни проекта и динамически подключаемые библиотеки).
Преимуществом является множественная поддержка популярных форматов, таких как:
• .3ds, .max, .obj, .fbx, .dae, .ma, .mb, .blend (для трёхмерных моделей);
• .mp3, .ogg, .aiff, .wav, .mod, .it, .smB (для звуковых файлов);
• .psd, .jpg, .png, .gif, .bmp, .tga, .tiff, .iff, .pict, .dds (для изображений);
• .mov, .avi, .asf, .mpg, .mpeg, .mp4 (для видеофайлов);
• .txt, .htm, .html, .xml, .bytes (для текста).
Модели, звуки, текстуры, материалы, скрипты можно запаковывать в формат .unityassets и передавать другим разработчикам, или выкладывать в свободный доступ.
Сервер ресурсов Unity - это полнофункциональное решение для контроля версий для всех игровых скриптов и ресурсов. Как и все остальное в Unity, он прост в использовании.
Unity с легкостью управляется с много-гигабайтными проектами, а также с множеством мегабайтных файлов. Настройки импорта и все другие метаданные хранятся вместе с историей изменений их версий. Статус измененных файлов сразу же обновляется, переименование и перемещение ресурсов не создает каких-либо препятствий для непрерывного рабочего процесса.
Сервер ресурсов Unity управляется базой данных PostgreSQL, который популярен своей надежностью, целостностью данных и легкостью администрирования и отлично справляется с рабочей нагрузкой гигантских проектов. Сервер ресурсов доступен как для Mac OS X Installer, так и для Linux RPMs. Поддержка нескольких платформ позволяет гибко внедрить Сервер ресурсов Unity в существующую IT-инфраструктуру.
Uniti BD очень универсальный двигатель для создания интерактивного кроссплатформенного виртуального тура, так как сочетает в себе большое количество языков программирования и позволяет с легкостью изменить язык программирования в любой удобный момент. Так же еще одни плюсом Uniti BD является, что созданные работы могу без труда запускаться на таких популярных платформах и устройствах как: системами Windows, OS X, Windows Phone, Android, Apple iOS, Linux, на игровых приставках Wii, PlayStation B, PlayStation 4, Xbox B60, Xbox One и MotionParallaxBD дисплеях (устройства для воспроизведения виртуальных голограмм), например, Nettlebox. Так же имеется возможность создавать приложения для запуска в браузерах с помощью специального подключаемого модуля Unity (Unity Web Player).
В настоящий момент ведется технология разработки интерактивного крос-сплатформенного виртуального тура движком unity 3D в заключительной стадии. В качестве исходных данных используются данные из открытых источников и архивные материалы.
О Е. А. Кшуманёва, П. М. Кикин, 2017