Разработка программы 3D-планетария для CAVE-систем

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    3,28 Мб
  • Опубликовано:
    2017-06-30
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Разработка программы 3D-планетария для CAVE-систем

Введение

Данная работа посвящена разработке программы 3D-планетария для CAVE-систем, которые в нынешнее время являются актуальной темой, как и тема виртуальной и дополненной реальности в целом. При выборе методов реализации данной работы был выбор между использованием профессиональных средств для разработки приложений с двумерной и трехмерной графикой и между использованием различных интерфейсов и библиотек, например OpenGL. В данном проекте использовалась среда разработки Unity 5, а в качестве языка написания сценариев был выбрал язык программирования C#.

В качестве CAVE-системы для тестирования реализуемого проекта была использована система, установленная в лаборатории МИЭМ НИУ ВШЭ. Там установлена неполная CAVE-система с четырьмя проекторами, а также аудиоаппаратура, для воспроизведения объемного звука.

Основной целью данной работы является облегчение процесса получения знаний у человека, используя технологии для создания виртуальной реальности. На данный момент существует не так много программ, нацеленных на виртуальную реальность, которые являются бесплатными и свободно распространяются. Проанализировав предметную область, были выполнены следующие действия для разработки:

Сравнение аналогов

Поиск возможных сфер применения

Обзор различных технологий виртуальной реальности

Поиск возможных библиотек для создания приложений для виртуальной реальности

Выбор методов построения системы

Реализация проекта

Глава 1 Обзор и анализ предметной области

.1 Обзор решений

.1.1 Актуальность проекта

Актуальность данной темы, а в частности использованию средств для создания виртуальной реальности в различных сферах, подтверждается следующими выкладками маркетинговых компании. Согласно данным, упомянутым в прогнозе компании IDC, общий годовой рост рынка гарнитур виртуальной (VR[3]) и дополненной (AR) реальности составят 58%.

Аналитики данной сферы технологии уверены в том, что в ближайшее время (2-3 года) технологии дополненной и виртуальной реальности будут более актуальными и востребованными по причине более детальной проработки этих технологий, а также снижение ценовой категории для таких устройств. Именно в 2016 году устройства различных ценовых категорий были предложены конечным потребителям, которые смогли попробовать использовать технологии дополнительной и виртуальной реальности в работе и в остальных сферах их жизни. Ниже представлена таблица, демонстрирующая рост данной сферы:

виртуальный реальность интерфейс база

Рисунок 1 - Рост доли на рынке VR и AR гарнитур

Актуальность создания 3D-планетария для систем виртуальной реальности демонстрируется не только показателями различных аналитических или маркетинговых компании, но также собственным анализом тенденции развития данного направления. Саму же тенденцию можно разделить на две группы: производство и продажа устройств виртуальной (VR) или дополненной (AR) реальности, а также создание контента, нацеленного на виртуальную реальность (VR).

За последние годы множество крупных компаний, таких как Google, Acer, HTC, Facebook, Samsung, Sony, активно развивают технологии, связанные с виртуальной (VR) и дополненной (AR) реальностями. В каждой компании имеется свои прототипы и уже готовые продукты, имплементирующие гарнитуры и прочие вариации инструментов, реализующие данный вид технологий. К примеру, компания HTC вместе с компанией Valve разрабатывает продукт под названием «HTC Vive».

Рисунок 2 - Популярные гарнитуры виртуальной реальности (VR)

Однако, в 2016 году ряд компаний, а именно Acer, Google, HTC, Facebook, Samsung и Sony, вошли в организацию под названием Global Virtual Reality Association (GVRA). Это колоссальный толчок в развитии стандартизированного интерфейса для различных реализаций гарнитур виртуальной реальности (VR), совместная разработка новых технологий, а также исправления предыдущих недочетов в прошлых проектах. Помимо всех плюсов, будет также разработаны специальные комплекты программ и утилит для разработчиков (SDK) приложений под данные платформы.

Сравнение аналогов

На данный момент, множество компаний используют свои собственные разработки исключительно в своих целях, без предоставления их приложений обществу. По этой причине в данной главе будет произведено сравнение с доступными аналогами.

Есть множество планетариев, которые не на целены на 3D-оборудование. Из самых популярных программных обеспечений можно выделить следующие: Stellarium, KStars и StarsightVR. Сравнение данных продуктов будет осуществляться с уклоном на некоторые критерии, необходимые для корректного функционирования в различных условиях.- свободный виртуальный планетарий с открытым исходным кодом, доступный для различных операционных систем. Это программа, которая создает реалистичное представление неба в реальном времени, с учетом различных фильтров, которые поддаются настройки, для отображения небесных объектов. Для проектирования и создания неба с различными объектами данное программное обеспечение использует библиотеки OpenGL и Qt. Библиотеки подобраны таким образом, чтобы обеспечивалась платформонезависимость, так как OpenGL является программным интерфейсом для работы с двухмерной и трёхмерной графикой, который является кроссплатформенным программным обеспечением.

Рисунок 3 - Основной экран Stellarium

Ниже представлены основные возможности Stellarium:

Перемещение камеры и осмотр главного экрана

Управление временем в программе

Масштабирование объектов

Установка определенных координат

Локализация приложения

Консоль для ввода сценариев

Отличительной особенностью Stellarium является обширная база небесных объектов. С помощью данной программы пользователь может наблюдать за всеми звездами из каталога Hipparcos. В данном каталоге упомянуты астрометрические параметры различных объектов:

Точные координаты

Собственные движения

Параллаксы

Рисунок 4 - Пример представления планет в Stellarium

Также, Stellarium, после изменения некоторых настроек, может быть внедрен в планетарий. Инструкция для настройки Stellarium данных целях приведена на сайте Wiki, посвященном данному проекту. Еще одной интересной особенностью является возможность управления телескопом с помощью данной программы.

Однако, данное программное обеспечение не предназначено для работы с системами виртуальной реальности (VR), такими как CAVE-системы или очки виртуальной реальности.

Следующая программа, которая рассматривалась в качестве аналога является KStars. KStars - это виртуальный планетарий, с открытым исходным кодом, для владельцев семейства Unix-подобных операционных систем. Эта программа создает ночное небо, на котором, использую интерфейс программы, можно просматривать различных объекты из космоса.

Рисунок 5 - Главное меню в KStars

В перечислении ниже представлены возможности Kstars:

Получение информации о небесных объектах

Получение информации о группе объектов (созвездиях, планет со спутниками и так далее)

Возможность ведения дневника наблюдения

Использование скриптов

Данное программное обеспечение также имеет ряд интересных особенностей, отличающих ее от остальных программ такого же рода: возможность управления телескопом, подключаемого к компьютеру, звёздный калькулятор. Однако, данное программное обеспечение абсолютно не предназначено для работы с виртуальной реальностью, а также не имеет возможности быть установленной в планетарии.

Последней программой, которая была рассмотрена является StarsightVR. Данная программа является копией программы Stellarium, однако StarsightVR предназначена для очков виртуальной реальности Oculus Rift. Для написания данного программного обеспечения использовалась библиотека для разработчиков Oculus Rift и основная часть Stellarium. StarsightVR является проектом с открытым исходным кодом.

Рисунок 6 - Пример представления планет в StarsightVR

Из особенности данной программы можно выделить динамическая работа над адаптацией под другие гарнитуры виртуальной реальности. К примеру, сейчас группа разработчиков работает над интеграцией с HTC Vive.

Критерии отбора для нашего случая будут следующие:

Поддержка виртуальной реальности

Расширяемость

Частое обновлений программного обеспечения

Легкий интерфейс (понятный без дополнительных знаний)

Таблица 1 - Сравнительный анализ аналогов.

Сравнительный анализ аналогов


Stellarium

KStars

StarsightVR

Разрабатываемое приложение

Поддержка виртуальной реальности

-

-

+

Расширяемость

+

+

+

+

Частое обновлений ПО

+

-

-

+

Легкий интерфейс (понятный без дополнительных знаний)

-

-

+

+


Хочется выделить несколько моментов: если переносить данное приложение на гарнитуры виртуальной реальности (VR) или любые другие типы оборудования для создания данного вида реальности, то интерфейс может создать неприятное ощущение для пользователя. Причин несколько: сложная адаптация под контроллеры движения, такие как Leap Motion, интерфейс, не нацеленный на неопытных пользователей и остальные мелкие недочеты, связанные с моделями объектов.

Сферы применения

Приложение 3D-планетария для CAVE-систем позволит пользователям взглянуть на мир под другим углом. Внедрение таких технологий в различные сферы жизни человечества позволит людям по-новому ощутить красоту знаний. Данный проект можно рассмотреть как внедрение виртуальной реальности в образовательную деятельность, в данном случае нацеленную на аудиторию планетариев, музеев и других образовательных мест, помимо учебных заведений. Человек любой возрастной категории, который посетит место, с внедренной технологией такого типа, сможет получить новую информацию необычным способом. Ключевой аспект это взаимодействие с объектами, которые в реальной жизни своими глазами увидят возможно десятки, а то и единицы. Это заставляет нас развиваться и мечтать.

Разрабатываемое приложение позволит обычным пользователям, вне зависимости от местоположения, увидеть своими глазами всю красоту космоса. На первых этапах проекта пользователь будет иметь возможность увидеть всю Солнечную систему, посмотреть данные о каждой планете, узнать интересную информацию о них, посмотреть на модель движения в нашей космической системе.

С помощью технологий виртуальной реальности (VR) можно облегчить жизнь во многих сферах, начиная от домашних дел и заканчивая проектов, нацеленных на человечество. Таких примером бессчетное количество, например медицина. На данный момент некоторые компании, нацеленные на разработку технических средств в медицинских целях уже использую данную технологию для создания чего-то нового. Начиная от объяснений простых, элементарных вещей, использование различных систем виртуальной реальности для создания технологических классов в учебных заведениях, и заканчивая демонстрацией протекания сложнейших процессов в человеческом теле путем эмуляции.

Для студентов медицинских университетов будет полезно посмотреть на различные процессы под более узким и детализированным углом. Это может быть демонстрация строение человека, с наименованием всех костей на нескольких языках, возможность увидеть их реальных размеры и как они образуют полную структуру скелета. Можно продемонстрировать процесс пищеварения, процесс обработки различной пищи, или же эмуляция работы чего-то действительно сложного. Например, процесс химеотерапии или один из сложнейших процессов в организме под названием цикл Кребса.

Помимо медицины можно выделить также множество важных сфер:

Образование

Архитектура

Технологии

Механика

1.2 Обзор технологий

.2.1 Виртуальная реальность

Виртуальная реальность (virtual reality, VR) - искусственно созданный мир, симулирующий объектов и субъектов из реального. Основная идея - передача тех же ощущений из виртуального мира в реальный с помощью зрения, слуха, обоняния, осязания и других ощущений. В виртуальной реальности, по его сути, нет ограничений на действие и взаимодействием между любыми объектами. Синтезирование ощущений, для реального эффекта, осуществляется в режиме реального времени.

В виртуальной реальности эмулируются объекты из реального мира: их размеры, материал, других свойства, модель поведения и прочие характеристики, свойственные объектам или субъектам в нашем мире. В силу того, что виртуальный мир - симуляция, тут не определенных законов физики. Все законы виртуального мира моделируются с помощью кода или же сред разработки разработчиками, или же могут быть изменены самими пользователями, если кодовая база проекта будет построена с возможностью изменения законов виртуального мира.

Рисунок 7 - Пример виртуальной реальности

Для передачи ощущений используются различные приспособление, некоторые из которых являются довольно громоздкими и неудобными для применения в реальном мире обычным пользователям. Поэтому, в основном, используется передача не всех ощущений, а лишь основных: зрительные и слуховые ощущения. Для этого используются очки виртуальной реальности и наушники. В самих очках виртуальной реальности используются множество аппаратных средств для создания более реального погружения таких как трёхосевого гироскоп, акселерометр и магнитометр.

Однако, не надо путать виртуальную реальность (VR) и дополненную реальность (AR). Дополненная реальность это абстрактная среда, которая при взаимодействия с определенной аппаратурой и программным обеспечением можно добавлять или же удалять определенные объекты в реальный мир.

1.2.2 CAVE-системы

CAVE [7] система - специальное окружение, для погружение в виртуальную реальность. Данная система, использую технические средства и компьютер создает 3D-сцену, а именно проектируется стереоизображение на каждую стенку. Представляется в виде комнаты (куб), где используются от 3 до 6 проекторов, направленные в определенные места. Пользователи данной системы используют 3D очки для создания объемного изображения, генерируемого с помощью проекторов.

Существуют различные конфигурации CAVE-систем. Они могут отличаться количеством проекторов, стен, на которые проецируется изображение, различные размеры систем, яркости композиций.

Рисунок 8 - Пример CAVE-системы

Существует множество компаний, предоставляющие готовые варианты с различными конфигурациями, специально для различных целей. Например, компания Virtual Environment Group (VE). Ведущий российский системный интегратор в области 3D-визуализации и систем виртуальной реальности. Компания была основана в 2002 году как научно-исследовательская группа при МФТИ. Данная компания предоставляет 2 конфигурации для CAVE-систем: VE CAVE и VE miniCAVE. VECAVE - это полномасштабная комната виртуальной реальности класса Entreprise. Отличие этих двух систем заключается в количестве проекторов, а также в мобильности систем.

Рисунок 9 - Пример CAVE-системы VE corp

На данный момент, CAVE-системы используются во многих областях, таких как архитектура, медицина, промышленный дизайн, машиностроение, схемостроение, инженерное дело, развлекательные цели и прочее. Использование таких систем позволяют не только использовать их в образовательных целях, но также и в научном деле, что для множества компании или университетов является значимой частью.

Множество университетов по всему миру имеют CAVE-системы. Так, например, в конце 2014 года в университете МИЭМ НИУ ВШЭ была реализована CAVE-система. Построена была система с использованием короткофокусных проекторов Panasonic с применением технологии мягкой сшивки изображения. Для построение 3D-изображения, необходимо выводить модель из одного источника, в данном случае управляющий компьютер.

Рисунок 10 - Форма геометрии потолка в CAVE-cистеме

1.2.3 CAVE 2

CAVE 2 (New Generation CAVE) - это усовершенствованная версия CAVE-системы, которая состоит из множества экранов, расположенных вдоль стен. Это широко расширяемая система виртуальной реальности, которая является гибридом нескольких технологий: настенных дисплеев, с функцией адаптивного расширения разрешения, а также системы виртуальной реальности. Комбинация Эти экраны, в последствии, создают 3D-изображения. Также эти экраны имеют панорамный вид. Ниже представлена спецификация для CAVE-системы второго поколения:

градусов, панорамный дизайн

Экраны высотою в 8 футов

Расширяемый высокопроизводительная кластерная система

.1 звуковая аудио система

Ультравысокое разрешение 0.029 на пиксель

Благодаря таким изменениям возможны расширения зоны покрытия в считанные часы. Комбинация нескольких технологий позволяет улучшить взаимодействие с пользователем, а также улучшить качество отображения. позволяет настраивать количество отображаемых интерфейсов различных приложений. SAGE (Scalable Adaptive Graphics Environment) - позволяет стенам в системе CAVE2 разделяться на «окна», на каждом из которых будет отображаться определенная информация двухмерной иди трехмерной графики.

1.2.4 Leap Motion

В качестве технологии, позволяющей взаимодействовать с компьютером и с виртуальным миром в частности, была выбрана Leap Motion. Это технология, основанная на захвате изображения, для осуществления определенного (запрограммированного) взаимодействия с любой системой.

Устройство выглядит как небольшая коробка, присоединяющаяся по USB-интерфейсу к компьютеру или любому другому устройству для обмена информацией, поступающей с Leap Motion. Это устройство создает невидимое 3D-область, которая имеет форму куба, с размером ребра около 60см. Для определения движения используются две камеры и трех инфракрасных светодиодов. В качестве особенностей стоит выделить несколько характеристик: скорость и точность захвата, которая достигает 200 кадров в секунду.

Существует, конечно же, и аналоги, например Intel RealSense. Это устройство примечательно тем, что в зависимости от конфигурации устройства оно может быть как и для виртуальной, так и для дополненной реальности. Это возможно благодаря инфракрасному лазерному проектору, который установлен в данном устройстве.

Использование данного устройства обусловлено тем, что с помощью технологии виртуальной реальности разработчик может перенести пользователя в любую ситуацию, где он, без особых навыков или специального непривычного оборудования будет стараться взаимодействовать с виртуальным миром. Однако, благодаря Leap Motion взаимодействие между пользователем и виртуальным окружением будет для человека естественным.

Глава 2. Выбор методов построения системы

Написанию любой системы начинается с построение архитектуры и выбора необходимых методов реализации. В данном случае необходимо выбрать из нескольких категорий: выбор игрового движка и выбор языка программирования, который будет также иметь весомую часть в реализации проекта 3D-планетарий для CAVE-систем.

2.1 Обзор игровых движков

До начала обзора необходимо было выделить основных конкурентов, которые будут участвовать в сравнении. Стоит выделить, на данный момент, двух гигантов среди программного обеспечения для создания программного обеспечения с использованием элементов двухмерной и трехмерной графики - Unity и Unreal Engine.- это набор различных инструментов для разработки приложении, с использованием двухмерной или трехмерной графики. Приложения, созданные с помощью данного программного обеспечения, работают под различными операционными системами, такими как Windows, MacOs, Windows Phone, Android, iOS, Linux и так далее, включая операционные системы, используемые в игровых консолях последнего поколения. Приложение, созданные в Unity, поддерживают работу с OpenGL и DirectX. Сам Unity написан на языках C, C#, JavaScript и Boo.

Рисунок 11 - Unity среда разработки.

Данное программное обеспечение имеет множество различных функциональных возможностей. Далее будут представлены основные из них:

Мощный Drag&Drop интерфейс

Поддержка нескольких языков написания сценариев

Легкая иерархическая модель объектов

Поддержка физики тел различных материалов

Генерация различных игровых элементов автоматически (средой разработки)

Инструмент создания 3D-анимации

Имеется также система упаковки игровых данных в формат .unityassets, которые в последствии могут быть переданы другим разработчикам или могут быть предоставлены разработчикам через внутренний магазин Unity Asset Store.

Следующий игровой движок, который будет рассмотрен - Unreal Engine. Это игровой движок, написанный на языке программирования C++. Благодаря выбранному языку программирования и остальных элементов, участвующих в разработке, данный движок позволяет создавать игр для большинства операционных систем, включая операционных системы, установленные на игровых консолях различных поколений, а также мобильных операционных систем, такие как iOS и Android.Engine использует модульную систему зависимостей. Это позволяет расширять функционал без изменения основного кода, а также имеет горизонтальную расширяемость функционала. Это технология позволяет добавлять поддержку различных устройств ввода, например систему LeapMotion.

Рисунок 12 - UnrealEngine среда разработки.

Таблица 2 - Сравнение штук


Unity3D

Unreal Engine 4

Поддержка виртуальной реальности

+

+

Языки программирования

C#, JavaScript

C++

Легкое обучение работы в среде разработки

+

-

Удовлетворительность ценовой политикой

+

-

Скорость обработки больших массивов математических вычислений

-

+


2.2 Язык разработки

Для разработки данного проекта был выбран мультипарадигмальный язык программирования C#. Данный язык программирования является языком с C-подобным синтаксисом, с объектно-ориентированной моделью. Имеет статическую типизацию, однако благодаря оператору ‘var’ и ‘dynamic’ можно использовать в сложных конструкциях, когда тип возвращаемого результата неизвестен или используется полиморфная модель поведения. Чаще всего данные операторы используются вместе с технологией LINQ.

Также поддерживается перегрузка операторов, делегаты, лямбда-выражения, события, свойства, обобщенные методы и типы, итераторы, анонимные функции, исключения и так далее.

Язык программирования C# сильно похож на язык программирования Java, так как последний оказал сильное влияние на выбранный язык разработки данного проекта. Так как язык программирования C# перенял множество положительных качеств языков, оказавших на него влияние, при его разработке учитывались и языковые недочеты. Например, популярная модель ромбовидного наследования, или же множественного в языке программирования C# запрещена. Вместо этого класс может быть наследником только одного класса, по умолчанию которым является класс “Object”.

Сам язык C# реализует основные понятия объектно-ориентированного программирование, а именно: инкапсуляция, полиморфизм и наследование. Это достигается различными языковыми конструкциями.

Основным его преимуществом является легкий синтаксис, оптимизированная исполняемая среда CLR, интеграция со средой разработки и игровым движком Unity 5.

2.3 Операционная система

В качестве операционной системы была выбрана операционная система семейства Windows - Windows 10. Данная операционная система имеет ряд преимуществ по сравнению с другими в контексте работы с виртуальной реальность (VR). Многие библиотеки, сервисы и программные обеспечения, нацеленные на создание продукции для виртуальной реальности (VR), возможно использовать исключительно на Windows.

Данная операционная система сильно оптимизирована под работу с видеокартами различных производителей, чего не сказать о семействе операционных систем Linux. Драйверы постоянно обновляются, разрабатываются новые программные комплексы для разработки и тестирования различных программ или приложений.

После несущественных оптимизаций, таких как отключение неиспользуемых сервисов, очистка временных данных, уменьшение потребления процессорного времени на ненужные процедуры, можно достигнуть определенного прироста в скорости работы с графикой.

На основе вышеупомянутых фактов можно сделать вывод, что разрабатывать данный проект лучше всего с использованием игрового движка Unity, а в качестве языка программирования выбрать C#, так как он имеет сильную интеграцию с данной системой разработки приложений с использованием двухмерной и трехмерной графики. Немаловажным фактом является постоянное обновление исполняемой среды для данного языка программирования, а также политику компании Microsoft, так как в последние годы они сделали огромный шаг в сторону открытости их продуктов. Например, попытки переноса платформы .NET на семейство операционных систем Linux и Unix, а также MacOS. Однако, если бы проекту была необходима более сильная вычислительная мощь, то необходимо было использовать движок Unreal Engine в связке с языком программирования C++, так как в данном двигателе показатели обработки различных математических задач выше, а также в языке программирования C++ делается серьезный уклон на скорость по причине ручного управления выделением динамической памяти.

Глава 3. Теоретическая часть

.1 Алгоритмы

В программе для 3D-планетария для CAVE-систем будут использоваться несколько алгоритмов, для построения реалистичной модели движения небесных тел в нашей Солнечной системе. Движение тел Солнечной системы можно определить различными методами, включая численным интегрированием дифференциальных уравнений их движения. Однако, существую и другие подходы, которые не требуют тех же вычислительных мощностей и предоставляют информацию с определенной минимальной погрешностью, которая в случае первого варианта приложения является приемлемой. Одно из популярных решений данной задачи является решение классического уравнения Кеплера.

После сравнения затрат времени на реализацию той или определенной методики определения движения планет, выбор пал на классическое уравнение Кеплера. Данная модель имеет следующий вид:


Однако, данный подход является не точным. В учет не идет влияние гравитации сторонних объектов, изменение траектории основываясь на попадании космического мусора в небесное тело. Для улучшение реалистичности движения все системы (Солнечной системы) в целом необходимо учитывать следующие факты:

Гравитация Солнца

Гравитация других планет, которые не обязательно вступают в непосредственное физическое взаимодействие

Космический мусор

Все зависит от абстракции, которую мы выбрали, так как если рассмотреть проблему детальнее, Солнце, так же как и остальные планеты и звезды Солнечной системы, подвержены гравитации сверхмассивных объектов из других систем, а также сверхмассивной черной дыры, которая, в теории, расположена в центре Млечного Пути.

3.2 Использование баз данных

Для создание частично динамической системы необходимо использовать базы данных. До того, как начать создавать таблицу, необходимо выполнить анализ предметной области, выбор модели данных, а также выбор системы управления баз данных как заключительная часть подготовки.

Все зависит от перспективы разработки. Если обновлений не будет, значит не будет вводится динамическая модель создания небесных объектов, а значит, что требования к системе изменяются. Для данного проекта лучший вариант это реляционная модель данных, а в качестве системы управления баз данных можно выбрать PostgreSQL по некоторым причинам: бесплатное программное обеспечение, обширная база пользователей данной системы, простота изучения.

Основные сущности, в данный момент, являются планеты и звезды. У данных сущностей можно выделить некоторое количество параметров, необходимые для функционирования и расширения программы. Примерная ER-диаграмма представлена на рисунке ниже:

Рисунок 13 - ER-диаграмма для базы данных 3D-планетария

Однако, если бы наши цели изначально указывали бы на то, что разработка будет продолжаться довольно длительное время, то выбор пал бы на модель данных NoSQL[10]. Причин для этого достаточно:

Легкая расширяемость

Легкое изменение параметров сущностей

Большая вариативность выбора модели данных

Работы с BigData

Секционирование

3.3 Разработка интерфейса

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

Интерфейс будет строится на основе моделей «сцен», который активно используются в Unity. Ниже приведена схема взаимодействия сцен, которые будут в реализации данного проекта.

Схема 1 - Взаимодействие сцен в 3D-планетарии.

3.4 Программное конструирование

В качестве кодовой архитектуры оптимальным вариантом является трехуровневая архитектура, или же архитектура на базе концепции «слоев». Мы Будем использовать слой представления данных для вызовов функции, описание которых будет размещено в уровне бизнес-логики. И только часть бизнес-логики будет обращаться к слою хранения данных.

Основные классы расположены в слое бизнес-логики:

Классы взаимодействия в устройствами виртуальной реальности

Классы логики взаимодействия объектов

Классы сохранения глобального состояния

Классы работы с базой данных


Рисунок 14 - Трехуровневая архитектура

3.5 Сценарий взаимодействия

Ниже представлена сценарий взаимодействия пользователя с разрабатываемым программным обеспечением.

Схема 2 - Сценарий взаимодействия

Глава 4. Практическая часть

.1 Реализация интерфейса

Основные пункты, необходимые интерфейсной части:

Понятный интерфейс

Легкое взаимодействие

Адаптация для виртуальной реальности

Рисунок 15 - Главный экран

Рисунок 16 - Настройки

4.2 Программная реализация

Алгоритм движения планет был реализован следующим образом: был создан специальный класс, который на основе динамических параметров высчитывает приблизительное местоположение небесного тела, относительно Солнца. Этот класс используется парадигмой агрегации, то есть находится в качестве свойства внутри компонента, отвечающего за траекторию вращения. Модель можно было изменить и централизовать, однако класс должен был бы спланирован так, чтобы попытки многопоточного обращения были корректными и не создавали заторможенность системы.

База данных реализована, с использованием системы управления баз данных PostrgeSQL. Базы данных и таблицы были созданы с помощью интерактивного интерфейса. Созданы 3 таблицы: планеты, звезды, планеты звезды.

Весь интерфейс и взаимодействие построены на компонентной модели Unity. Основные компоненты:

Движение объектов

Движение камеры

Интеграция с виртуальной реальностью

Работы с базой данных

В каждой планете, которая вращается вокруг своей оси и вокруг Солнца есть следующие компоненты:

Движения вокруг своей оси

Движения вокруг Солнца

Общий компонент сохранения состояния

И прочие

4.3 Результат работы системы

Тестирование данной системы заключалось в анализе корректности работы планетария: прорисовка изображений и моделей, взаимодействие с интерфейсом, а также с объектами. Важной частью данного тестирования являлось проверка корректности интеграции различной аппаратуры для виртуальной реальности. В тестировании взаимодействий были проверены:

Работоспособность и корректность работы всех сцен

Работоспособность при использовании приложения без аппаратуры для виртуальной реальности

Интеграция различной аппаратуры (Leap Motion) для взаимодействия с игровым миром

В качестве аппаратуры для виртуальной реальности использовались следующие представители:

CAVE-системаMotionGlasses

Заключение

В результате приведенной работы по реализации программы 3D-планетария, была спроектирована система для облегчения процесса получения знаний у человека, использующего технологии виртуальной реальности. Были проведены следующий объем работ:

Выполнен анализ предметной области

Сравнение аналогичных проектов

Выбраны методы реализации проекта

Проведен анализ библиотек, сред разработки и языка написания сценариев

Проведен анализ возможностей интеграции датчика движения Leap Motion в проект

Получены минимальные знания в области движения небесных тел, благодаря которым были получены математические модели движения небесных тел, потенциально применимые для создания реалистичной модели Солнечной системы

Также были изучены способы и методы работы с 3D­-моделями и их интеграции в данный проект.

Источники

1.      Mediasat. К 2021 году объём рынка AR/VR-гарнитур приблизится к ста миллионам штук. URL: <http://mediasat.info/2017/03/21/worldwide-ar-vr-headset-market/>

.        Habrahabr. Анализ рынка виртуальной реальности 2016. URL: <https://habrahabr.ru/post/318868/>

3.      Tadviser. Виртуальная реальность (VR, Virtual Reality). URL:<http://www.tadviser.ru/index.php/Статья:Виртуальная_реальность_(VR,_Virtual_Reality)>

.        Hi-news. КРУПНЕЙШИЕ VR-КОМПАНИИ СФОРМИРОВАЛИ ГЛОБАЛЬНУЮ АССОЦИАЦИЮ ВИРТУАЛЬНОЙ РЕАЛЬНОСТИ. URL:<https://hi-news.ru/technology/krupnejshie-vr-kompanii-sformirovali-globalnuyu-associaciyu-virtualnoj-realnosti.html>

5.      Wikipedia. Cave automatic virtual environment. URL:<https://en.wikipedia.org/wiki/Cave_automatic_virtual_environment>

6.      Wikipedia. Unity (игровой движок). URL:<https://ru.wikipedia.org/wiki/Unity_(игровой_движок)>

.        VC. Каким должен быть интерфейс приложения в виртуальной реальности - на примере игры The Lab от Valve. URL:<https://vc.ru/p/the-lab>

.        Jetinfo. СУБД NOSQL - CИЛЬНЫЕ И СЛАБЫЕ СТОРОНЫ. URL: <http://www.jetinfo.ru/stati/silnye-i-slabye-storony-nosql>

9.      Ролич А. Ю., Бекоев Б. Г., Зайцева А. О. Разработка динамически конфигурируемого ядра трёхмерного интерфейса с элементами естественного человеко-машинного взаимодействия (NUI) //Виртуальная и дополненная реальность-2016: Состояние и перспективы. - ГПБОУ МГОК, 2016. - С. 47-52.

Похожие работы на - Разработка программы 3D-планетария для CAVE-систем

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!