Введение
Данная работа посвящена разработке программы 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.
Отличие этих двух систем заключается в количестве проекторов, а также в
мобильности систем.