какойтокурсач. Факультет компьютерных технологий и прикладной математики Кафедра информационных технологий курсовая работа разработка мобильного приложения дополненной реальности для ос 10s с использованием платформы arkIT
Скачать 1.09 Mb.
|
1 2 МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное бюджетное образовательное учреждение высшего образования «КУБАНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ» (ФГБОУ ВО «КубГУ») Факультет компьютерных технологий и прикладной математики Кафедра информационных технологий КУРСОВАЯ РАБОТА РАЗРАБОТКА МОБИЛЬНОГО ПРИЛОЖЕНИЯ ДОПОЛНЕННОЙ РЕАЛЬНОСТИ ДЛЯ ОС 10S С ИСПОЛЬЗОВАНИЕМ ПЛАТФОРМЫ ARkIT Работу выполнил К.Р. сеидов (подпись) Направление подготовки 01.03.02 Прикладная математика и информатика Направленность (профиль) Системное программирование и компьютерные технологии (Математическое и программное обеспечение вычислительных машин) Научный руководитель канд. техн. наук, доц. С.Г. Синица (подпись) Нормоконтролёр А.В . Харченко (подпись) Краснодар 2018 РЕФЕРАТ Курсовая работа содержит 33 страницы, 10 рисунков, 8 источников. ДОПОЛНЕННАЯ РЕАЛЬНОСТЬ, AR, AUGMENTET REALITY, ARkIT, UNITY, GLTF, РАЗРАБОТКА, ТЕХНОЛОГИИ, 10S. Объектом исследования является технология дополненной реальности, а также платформа ARkit, игровой движок Unity, формат GLTF. Целью курсовой работы является изучение технологии дополненной реальности, принципов разработки приложений для iOS и принципов работы с графическими движками на примере Unity. В результате была создана программная реализация функциями которой являются: построение виртуальной плоскости по множеству точек; загрузка сохраненной в память устройства формата GLTF•, размещение на виртуальной плоскости и создание эффекта дополненной реальности. СОДЕРЖАНИЕ Введение 1 Технология дополненной реальности, основные понятия и игровых движков................................................................... 1 .1 Технология AR . 1 .2 Понятие игрового движка . ... ... .. 12 Формат GLTF........................................................................... 14 2 Мультиплатформенная среда разработки Unity. Платформа ARkit ... ... ... ... 1 8 2.1 Мультиплатформенная среда разработки Unity . 18 Платформа Rkit........................................................................................ 21 З Программная реализация........................................ ... ... .. 27 Постановка задачи...................................... . ... .. 27 Выбор платформы и языка программирования 27 3.2 Настройка среды Unity. Установка плагина............................... . 28 3.2 Построение внутреигровой сцены............................................................. 28 3.2 Результаты работы . ... .. 29 Заключение ............................................................................................................ 31 Список использованных источников 32 ПРИЛОЖЕНИЕ А ................................................................................................. ЗЗ ВВЕДЕНИЕ На сегодняшний день технология дополненной реальности (англ. augmented reality, AR) является одной из самых перспективных и быстроразвивающихся в сфере информационных технологий в XXI веке. Спектр её применения достаточно широк: начиная с развлекательных приложений и заканчивая программным обеспечением для интерфейса кабины военных истребителей. В последние несколько лет технология дополненной реальности нашла широкое применение в сфере мобильных развлечений. Наиболее ярким примером мобильного приложения с функцией дополненной реальности является «РоКётоп Go», число скачиваний которой в первые 19 дней после выхода в цифровой магазин составило порядка 75 миллионов. Данный пример продемонстрировал, насколько перспективным является рынок мобильных На сегодняшний день технические характеристики современных смартфонов позволяют с помощью таких платформ, как ARkit для ОС iOS создавать программы с все более и более широким функционалом. Процент в цифровых магазинах AppStore и GooglePlay продолжает возрастать, и многие аналитики прогнозируют увеличение в несколько раз объёма рынка виртуальной и дополненной реальности к 2020 году. В данной курсовой работе будет рассмотрено создание для ОС iOS с функцией произвольной формата GLTF. Данный подход позволяет в будущем загружать модели и анимации к ним с сервера. Целью курсовой работы является разработка мобильного приложения дополненной реальности для ОС IOS с использованием платформы ARkIT. Исходя из названной цели, в работе поставлен ряд задач: изучить технологии дополненной реальности; провести обзор возможностей существующих методов отображения дополненной реальности; обосновать выбор среды разработки; — изучить принципы работы в графических движках на примере Unity; — разработать и представить на рассмотрение программный продукт. Общую теоретико-методологическую базу курсового проекта составили труды зарубежных исследователей, опубликованные на различных иностранных сайтах. Технология дополненной реальности, Основные понятия Технология AR 1.1.1 Общая информация Дополненная реальность (Augmented reality, AR) это область исследований, ориентированная на использование компьютеров для совмещения реального мира и данных, сгенерированных компьютером. На сегодняшний день большинство исследований в области AR сконцентрировано на использовании живого видео, подвергнутого цифровой обработке и «дополненного» компьютерной графикой. Изначально термин AR был введён в противовес виртуальной реальности: вместо погружения пользователя в синтезированное, полностью информационное окружение, задачей AR является дополнение реального мира возможностями по обработке дополнительной информации. Другие же исследователи понимают виртуальную реальность как специальный случай дополненной реальности. Первым исследователем дополненной реальности можно считать Айвэна Сазерленда, который построил работающий прототип системы в 1967 году. Он использовал стереоочки Sword of Damocles для показа трехмерной графики. Современный этап исследований начался в 1990 году, когда исследователи фирмы Boeing решили использовать наголовные стереодисплеи при сборке и обслуживании самолётов, накладывая интерактивную графику на изображения реального мира. Одним из наиболее известных исследователей в этой области сегодня является Рональд Азума из HRL Laboratories. В 1997 г. он опубликовал большую обзорную статью «А Survey of Augmented Reality» [6], где впервые были ясно очерчены проблемы и возможности, связанные с внедрением этой технологической концепции. Он определяет AR как систему, которая: 1) совмещает виртуальное и реальное; 2) взаимодействует в реальном времени; З) работает в 3D. Герман Бенес пишет: «Дополненная реальность определяется в соответствии с контекстом и при этом рассматривается не как абстрактная запись, а так, словно, объекты дополненной реальности существуют в природе и жизни. Дополненная реальность это инструмент, который позволпяет одному или многим наблюдателям расширить своё поле зрение при помощи виртуальных элементов, обычно созданных компьютером» [1]. Он определил следующие правила, которые могут быть определены как необходимые для того, чтобы дополненная реальность была принята бизнесом, образованием и обществом: полная интерактивность в реальном времени; точное и сверхбыстрое отслеживание; З) стереоскопия; сверхпортативность и беспроводность; ощущение «полного погружения». Большинство людей, которые интересуются AR, считают одной из самых важных характеристик способ, которым осуществляется трансформация места, где происходит взаимодействие. В интерактивной системе важно не просто точно определить местоположение, но и распознать окружение. Три основные составляющие персональной системы дополненной реальности: носимый компьютер; средства отображения; З) средства позиционирования. И если первые два пункта не представляют особой сложности в реализации в связи с появлением графических процессоров, достаточной для обработки высокодетализированной мощности, а также LEDдисплеями высокого разрешения, то вот проблему позиционирования виртуальных объектов относительно пользователя решить удалось лишь недавно. 1.1.2 Решение проблемы позиционирования С момента зарождения концепции AR существовала проблема позиционирования в пространстве виртуальных объектов относительно пользователя. Использование «классической» навигационной системы GPS не решало проблему. Ведь идея дополнения реальности заключается в получении правильной информации в правильном месте. «Классический» датчик GPS дает минимальную погрешность от З до 30 м. Учитывая то, что подписи на дисплее должны совмещаться с изображением реальных объектов с точностью до сантиметров, такая ошибка делает затею бессмысленной. Поскольку основной задачей дополненной реальности является синтез реальных и виртуальных объектов в пространстве, то возникает необходимость в предварительной обработке данных об окружающем пространстве. Регистрирование геометрических характеристик небольших помещений сегодня уже стало нормой жизни для широкого круга специалистов. Все оказывается гораздо сложнее, когда речь заходит об открытых пространствах: как взаимно расположены виртуальные и реальные предметы, какой из них находится на первом плане? Работа здесь ведется по двум направлениям: съемка «карты глубин» (depth sensing) в реальном масштабе времени и предварительный сбор информации о местности. Комбинация гироскопа и компаса дает неплохие результаты, а если добавить к ним распознавание изображений заранее известных элементов ландшафта точность возрастает до пиксельного уровня. Расхождение измеряется пикселями исключительно из-за особенностей человеческого мозга и зрения, способных выявить малейший промах при размещении виртуальных предметов в реальном пространстве. Пользу здесь приносят даже разработки создателей спецэффектов в кино, которые занимаются восстановлением траектории движения камеры с помощью отслеживания перемещений в кадре объектов-маркеров. В 2018 году компания Apple презентовала обновлённую линейку своих смартфонов. Одним из наиболее обсуждаемых нововведений стало распознавание лица. И хоть на первый взгляд связи с AR не так много, но именно возможность камеры строить математическую модель лица, или сказав по-другому — распознавать поверхность, дало технологиям AR новый толчок. Рассмотрим технологию на примере Spectra системы от Qualcomm. Частью этой системы является расположенный рядом камерой модуль, который генерирует инфракрасное излучение. Он испускает лазерные лучи в инфракрасном диапазоне, которые падают на различные точки поверхности, а в свою очередь датчик воспринимает обратную связь и соответствующим образом реагирует. Например, оценивает положение поверхности относительно камеры и то, под каким углом она расположена. Совместное использование этой технологии с акселерометром, гироскопом и возможностями машинного зрения позволяет построить наиболее точную на сегодняшний день сцену дополненной реальности. 1.1.3 Рынок дополненной реальности Дополненная реальность переживала несколько витков развития и сейчас мы видим новый виток, при котором впервые дополненная реальность имеет массовый эффект. Революция, которую мы сейчас наблюдаем, это следствие появления так называемой «четвертой платформы» (рис. 1). Рисунок 1 — Виток развития платформ Первая платформа — персональные компьютеры, которые появились в конце 80-х — начале 90-х, потом пришел интернет, следующим этапом стали мобильные технологии. Сейчас мобильное потребление уже больше, чем на персональных компьютерах. Виртуальная и дополненная реальность следующая платформа, для которой будут создаваться новые рынки, предложения и бизнес. Сейчас тот самый момент, когда надо инвестировать в VR/AR и развивать технологии в этой сфере. По оценке аналитиков, сейчас объём рынка виртуальной и дополненной реальности в выручке от продаж контента и устройств составляет несколько миллиардов долларов, но уже к 2025 году будет составлять более $170 млрд . Это огромная возможность для инвесторов. Сейчас основная выручка создается шлемами виртуальной реальности и приложениями, который для них создается. 1.2 Понятие игрового движка. Игровой движок — это среда разработки программного обеспечения, предназначенная для людей, создающих видеоигры. Разработчики используют игровые движки для создания игр для консолей, мобильных устройств и персональных компьютеров. Основные функциональные возможности, обычно предоставляемые игровым движком, включают в себя механизм рендеринга («рендерер» или генерация/обработка графического изображения) для 2D или физический движок или обнаружение столкновений (и реагирование на столкновения), звук, сценарии, анимацию, искусственный интеллект, сетевое взаимодействие, потоковую передачу, память управление, многопоточность, поддержка локализации, графические сцены и может включать в себя поддержку видео для кинематографии. Во многих случаях игровые движки предоставляют набор инструментов визуальной разработки в дополнение к повторно используемым программным компонентам. Эти инструменты обычно предоставляются в интегрированной среде разработки, что позволяет упростить и ускорить разработку игр на основе данных. Большинство игровых движков предоставляют средства, облегчающие разработку, такие как графика, звук, физика и функции искусственного интеллекта. Эти игровые движки иногда называют «промежуточным программным обеспечением», потому что, как и в деловом смысле этого слова, они предоставляют гибкую и многократно используемую программную платформу, которая предоставляет все основные функциональные возможности, необходимые для разработки игрового приложения, при одновременном снижении затрат. Как и другие типы промежуточного программного обеспечения, игровые движки обычно предоставляют абстракцию платформы, позволяя запускать одну и ту же игру на различных платформах, включая игровые приставки и персональные компьютеры, с небольшими изменениями в исходном коде игры, если таковые имеются. Зачастую игровые движки разрабатываются на основе компонентной архитектуры, которая позволяет заменять или расширять конкретные системы в движке более специализированными (и зачастую более дорогими) компонентами игрового промежуточного программного обеспечения. Некоторые игровые движки спроектированы как набор слабо связанных компонентов промежуточного программного обеспечения, которые можно выборочно комбинировать для создания собственного движка вместо более распространенного подхода к расширению или настройке гибкого интегрированного продукта. Несмотря на то, что расширяемость достигается, она остается высоким приоритетом для игровых движков из-за большого разнообразия областей применения, для которых они применяются. Несмотря на специфику названия, игровые движки часто используются для других видов интерактивных приложений с графическими потребностями в реальном времени, такими как маркетинговые демонстрации, архитектурные визуализации, симуляции обучения и среды моделирования. Некоторые игровые движки предоставляют только возможности 3Dрендеринга в реальном времени вместо широкого спектра функций, необходимых для игр. Эти движки полагаются на разработчика игр, чтобы реализовать остальную часть этой функциональности или собрать ее из других компонентов промежуточного программного обеспечения игры. Эти типы движков обычно упоминаются как «графический движок», «движок рендеринга» или «трехмерный движок» вместо более всеобъемлющего термина «игровой движок». Эта терминология используется непоследовательно, поскольку многие полнофункциональные игровые движки называются просто «трехмерными движками». Современные игровые или графические движки обычно предоставляют графические сцены, который является объектно-ориентированным представлением игрового мира 3D, который часто упрощает игровой дизайн и может использоваться для более эффективного рендеринга обширных виртуальных миров. 1.3 Формат GLTF. 1.3.1 Общая информация GLTF (GL Transmission Format) - это формат файлов для хранения 3Dсцен и моделей, использующий стандарт JSON, разработанный командой khronos Group и анонсированный на HTML5DevConf 2016. Создатели описывают его как «JPEG 3D». Предполагается, что GLTF будет эффективным, совместимым форматом, который сжимает размер и минимизирует их время обработки для приложений, использующие WebGL и другие АРТ. сохраненная в формате gltf, представляет собой структуру данных, схематично изображенную на рисунке З, состоящую из несколько файлов: Рисунок З — Схема структуры данных Gltf — файл, в котором хранится сама структура модели, иерархия ее частей (так называемых узлов), текстуры материалов (англ. Physically Based Rendering, PBR физически обоснованный рендеринг, при котором некоторые физические свойства объектов, такие как отражение, принимаются в расчет) и информация о камере в этой сцене; Bin — файл, который хранит геометрию узлов и их индексацию, информацию о ключевых кадрах анимации, а также матрицу обратного связывания, необходимую для связи «скелета» модели (набора джоинтов) и ее «плоти» З) файлы изображения, хранящие текстуры модели. 1.3.2 Преимущества и недостатки формата GLTF 2.0 даёт разработчикам шанс стандартизировать рабочий процесс между программным обеспечением для и игровыми движками. GLTF — это формат, основанный на JSON, текстовый формат обмена данными, основанный на JavaScript. Это значительно снижает необходимость полагаться на сложные сторонние библиотеки для его чтения. Многие языки (например, Javascript, Python) поддерживают этот формат изначально. Первым преимуществом является отдельный двоичный блоб (BLOB — с англ. Binary Large 0Bject двоичный большой объект — массив двоичных данных для хранения изображений, аудио и видео и тд). GLTF позволяет указывать внешний файл для данных в формате двоичного кода. Он также поддерживает многие распространенные типы данных графического процессора, поэтому на практике этот файл можно перемещать частями непосредственно в память графического процессора. GLTF является первым из таких форматов, который можно эффективно использоваться в качестве внутренних данных в графическом движке. Импорт и экспорт происходит крайне быстро в сравнении с другими форматами, и это делает возможным внесения изменение в файл с помощью ПО для 3Dмоделирования и его последующее обновления в движке, происходящее почти мгновенно. Вторым и не менее важным является отсутствие у данного формата возможности разночтения. Файловая структура GLTF не содержит никаких дополнительных или избыточных данных. Существует только один способ понять определение сцены. Это существенно упрощает процесс импорта, гарантируя, что все существующие сцены будут работать с первой попытки внедрения. Также нет поддержки различных систем координат или единиц. GLTF использует правую систему координат, то есть, перекрестное произведение Х и У приводит к Z. GLTF определяет ось У как вверх. Единицами измерения для всех линейных расстояний являются метры. Все углы в радианах. Положительное вращение против часовой стрелки. Кроме того, GLTF поддерживает многие современные функции и особенности своих конкурентов. GLTF 2.0 полностью поддерживает скелеты и морфы цели, которые могут быть проанализированы легко и однозначно. Он также поддерживает материалы на основе PBR с металлическим, шероховатым, нормальным, эмиссионным непрозрачным покрытием и обрабатывает двусторонние и прозрачные материалы, включая частичнопрозрачные покрытия. Поддержка анимации также хорошо сделана. GLTF 2.0 поддерживает несколько анимаций на файл, что идеально для экспорта действий. Анимации хранятся в двоичном файле, что делает возможным её быструю загрузку. Не смотря на ряд своих преимуществ в плане организации данных, формат GLTF был раскритикован некоторыми разработчиком Так Эрик Ленгель [2] указывает на то, что GLTF не хватает многих возможностей, когда речь идет о структуре сцены, применении материалов, создания обложек и освещения, а также невозможности указать физические единицы или глобальный вектор направления вверх. Он также утверждает, что поддержка анимации в GLTF недостаточна для точного воспроизведения анимаций, созданных в большинстве популярных программ моделирования (включая Blender, Autodesk 3ds Мах и Autodesk Мауа). Ведущий разработчик Godot Engine Хуан Линецкий[1] резко критиковал GLTF 1.0. Однако он выступил за то, чтобы GLTF 2.0 был стандартным форматом обмена активами для игровых движков. Он утверждает, что во многих случаях сокращение возможностей на самом деле является преимуществом, устраняя неопределенность и делая импорт файла проще в реализации На текущий момент формат непрерывно развивается обретает все большую популярность. Команда The khronos Group Inc непрерывно совершенствует свое детище, добавляя новые функции и совершенствуя уже имеющиеся. 2 Мультиплатформенная среда разработки Unity. Платформа 1 2 |