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

Бесплатный доступ

Резюме: VR - это использование компьютерных технологий для воссоздания моделируемой среды, которая передается человеку с помощью его ощущений, таких как зрение, слух, обоняние, осязание. В отличие от классических пользовательских интерфейсов виртуальная реальность переносит пользователя внутрь происходящих действий. Вместо того чтобы смотреть на экран перед собой, пользователи могут погрузиться в иммерсивный искусственный мир и попробовать взаимодействовать с ним. Благодаря современным технологиям этот мир может казаться вполне реальным. В статье сравниваются средства разработки технологий с элементами виртуальной реальности, такими как Unity и Unreal Engine 4. По результатам обзора осуществляется выбор среды реализации для исследования, в рамках проекта при поддержке Фонда Содействия Инновациям по программе УМНИК-VR по договору 390ГУЦЭС8-D3/56666 от 27.12.2019, связанного с разработкой программы обучения для вуза по стандартам ФГОС3++. Эта программа будет использоваться в образовательном процессе в виде приложения, основанного на VR-технологиях, позволяющих глубже понять изучаемый материал. Данная программа позволит обучающимся показать вещи, недоступные при обычном образовании: опыт работы со сложным оборудованием, доступным к практическому освоению в виртуальной среде, без необходимости его фактической закупки.

Еще

Моделирование, обучение it-специалистов

Короткий адрес: https://sciup.org/140297108

IDR: 140297108   |   DOI: 10.18469/ikt.2022.20.2.13

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

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

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

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

Игровой «движок» является программной основой, используемой при разработке видеоигр: управляет использованием памяти компьютера и предоставляет среду программирования логики виртуального пространства, а также предоставляет инструменты наполнения виртуального пространства различными объектами и добавления им определенных свойств, рассчитывает взаимо- действие виртуальных объектов и управляет ими (столкновения, искусственный интеллект), осуществляет рендеринг (преобразование данных) виртуального пространства и многое другое.

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

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

Безусловно, самыми популярными «движками» для небольших разработок в данной сфере являются Unity и Unreal Engine (UE). Unity vs Unreal – горячо обсуждаемая тема, сравнимая с Microsoft vs Apple. Оба они способны создавать качественную графику, и оба имеют отличные показатели работы в отличие от большинства стандартных программных продуктов. Они поставляются с обширным набором инструментов, включая редактор ландшафта, моделирование физики, анимацию, улучшенное освещение, поддержку VR и многое другое.

У каждого «движка» есть свои преимущества и недостатки. Хотя и Unreal Engine 4, и Unity являются отличными игровыми «движками», в зависимости от того, что необходимо сделать, один может быть лучшим вариантом по сравнению с другим. В качестве критерия выбора может быть как удобство интерфейса, с точки зрения разработчика, так и наиболее привычный для него язык программирования.

UE4 или Unity?

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

Фотореализм, наверное, первое слово, которое приходит на ум, когда речь идет о UE. При просмотре внутриигрового видео (кат-сцены) обычным пользователем у него может возникать вопрос, является оно реальным изображением или его разработали графически с нуля. Во втором случае, скорее всего, применяется технология Epic Games.

На протяжении многих лет Epic Games представляет для разработчиков технические демон- страции, показывающие возможности Unreal, от трассировки лучей до технологий реального времени. Такие возможности делают его предпочтительным в классе высокобюджетных компьютерных игр, рассчитанных на массовую аудиторию и требующих огромных затрат как на саму разработку игры, так и на ее маркетинг. UE упрощен для работы пользователя благодаря Blueprint – системе визуальных сценариев UE4. Blueprint, является основным инструментом для создания прототипов и итераций. В Blueprint можно перетаскивать узлы и добавлять провода, чтобы соединить их и добавить логику. UE4 не только может обрабатывать большие игры, но и благодаря функциям рендеринга позволяет масштабировать их на разных платформах. Blueprint – это система визуальных сценариев в Unreal (до UE4 она использовала систему под названием Kismet). Многие сравнивают Blueprint с Prefabs в Unity, но это нечто большее. Blueprint – это кодогенератор. Таким образом, созданный график может быть индивидуально скомпилирован в код C++. А в контексте итерации режима воспроизведения это означает, что время компиляции не будет увеличиваться экспоненциально, как в Unity, потому что каждый из них компилируется индивидуально. Еще одной из основных причин популярности UE4 является гибкость. Кроме того, UE очень ресурсоемкий, перед работой появляется диалоговое окно с предупреждением о том, что UE лучше всего работает на четырехъядерном компьютере. В сцене по умолчанию с двумя стульями при вращении окна просмотра с помощью мыши уже присутствуют некоторые задержки (примерно 0,3–0,5 с). UE имеет один из самых гибких пользовательских интерфейсов по сравнению с другими бесплатными игровыми «движками», включая Unity. Распределение инструментов для работы динамично, а также доступно и понятно.

UE4 [2] имеет один из самых удивительных графических рендерингов, который включает не только анимационные фильмы, но и частоту обновления игры. Оптимизация частоты кадров настраивается, поэтому она автоматически классифицирует активы частиц и при необходимости исключает их. UE4 полностью бесплатен с точки зрения использования игрового «движка» и не требует лицензионных отчислений, если доход с продаж игры составляет менее 3000 долларов США в квартал. Если она превышает эту сумму, UE4 берет 5 % в качестве роялти. В отличие от своего предшественника UDK, который использует UnrealScript, UE4 теперь больше не применяет этот сценарий и полностью использует C++.

UE4 имеет 2 сценария программирования: программирование Blueprint и программирование на C++. Разработчики, незнакомые с языком C++, могут использовать Blueprint Programming. Если разработчик хорошо владеет языком C++, то для него предпочтительнее использовать сценарии C++, в которых UE 4 [2] поддерживает отладку в реальном времени, которую не предоставляет большинство игровых «движков». C#, используемый в Unity, конечно, проще, чем C++, но C++ позволяет разработчику создавать новые интересные элементы и обрабатывать память вручную. При этом существует огромное количество директив препроцессора, которые, по сути, превращают C++ в C#. Они управляют памятью за разработчика, у них даже есть директива, которая превращает структуру в упрощенный тип данных старой версии, как в C#. UE4 требует небольшого обучения, поэтому пользовательский интерфейс может быть немного сложным в использовании. Однако при этом существует достаточное количество учебных пособий, которые помогут разработчикам изучить материал и разобраться во всех аспектах предоставленных инструментов. Из популярных средств разработки VR-приложений этот «движок» довольно сложен, но полезен.

Unity [1] – это кроссплатформенный игровой «движок», разработанный Unity Technologies. Unity позиционируется как универсальный «движок» и, как результат, поддерживает как 2D-, так и 3D-графику, функцию перетаскивания и создание сценариев на трех собственных языках. «Движок» нацелен на следующие API: Direct3D и Vulkan в Windows и Xbox 360; OpenGL на Mac, Linux и Windows; OpenGL ES на Android и iOS; и проприетарные API для игровых консолей.

В 2D-играх Unity дает возможность импортировать спрайты и расширенный рендер 2D-мира. Для трехмерных игр Unity позволяет указать параметры сжатия текстур и разрешения для каждой платформы, поддерживаемой игровым «движком». Популярными отраслями, использующими Unity, являются: Blizzard, Amplitude, Hasbro Interactive. Также можно сказать, что Unity – лучший выбор для планшетов, и его лидирующая позиция на рынке мобильных игр доказывает это. «Движок» обеспечивает безопасное подключение к аналитике, платежным системам, рекламным продуктам. Unity – идеальное решение для разработки двумерных игр. Unreal также предлагает аналогичные возможности разработки 2D-игр для менеджеров проектов мобильных игр. Unity Engine имеет один из самых простых дизайнов пользовательского интерфейса и не ограничивает пространство экрана системы, в отличие от Unreal Engine 4. Он работает быстро, а панели инструментов можно легко настраивать. В нем больше места для рендеринга и разработки игр. Unity обеспечивает высокое качество графики благодаря физическому рендерингу (PBR). Принимаются во внимание характеристики различных материалов (текстура, тип, металлическая природа, блеск, шероховатость и т. д.), а также их окружение, чтобы получить наилучший возможный 3D-рендеринг путем воспроизведения окружающего света с точки зрения текстуры объектов. Unity предлагает ряд инструментов, которые удовлетворяют потребности больших команд. «Совместная работа» немного похожа на Git в том смысле, что позволяет командам работать вместе над одним проектом благодаря возможности синхронизировать действия и информацию при управлении версиями кода. Этот инструмент напрямую и интуитивно интегрирован в редактор Unity. Также можно добавить инструменты для общения и беседы, такие как Discord, Slack и Jira. Unity также предлагает систему Cloud Build, которая автоматизирует процесс компиляции проекта. Преимущество этого решения в том, что оно позволяет скомпилировать проект в облачном хранилище для нескольких платформ одновременно. Он похож на UE4 и другие популярные игровые «движки» и поддерживает все эффекты, включая отображение рельефа, отражений, параллаксапр, окклюзию окружающего пространства экрана (SSAO), динамические тени с использованием карт теней, рендеринг в текстуру и полноэкранный пост – эффекты обработки. Однако Unity является freemium, то есть большинство высокопроизводительных функций заблокированы, если не оплачены дополнительные пакеты. В Unity есть 4 пакета: Personal (бесплатно), Plus (35 долларов в месяц), Pro (125 долларов в месяц), Enterprise (индивидуальная настройка). В отличие от UE4, Unity применяет C# и Javascript для написания кода и сценария игры. Следовательно, он широко используется для ролевых игр, визуальных новелл и мобильных игр с очень короткими сроками разработки. Недавно Unity Technologies представила новый метод программирования под названием ECS (Entity Component System). Это позволяет вписать высокопроизводительный код, т. е. переходя от объектно-ориентированного программирования к компонентно-ориентированному программированию. И как следствие можно отметить экономию времени и повышение производительности. Разработчики,

Таблица. Технические характеристики ноутбуков, использованных в эксперименте

Процессор (CPU) Видеокарта (GPU) RAM Ноутбук Predator Helios 500 PH517-52-94RQ (NH.QCNER0O3) Intel Core й NVIDIA GeForce RTX 3080 16 ПБ памяти DDR4 Ноутбук LENOVO Ноутбук Lenovo V15-IL Core 13 1005G1 4Gb SSD256Gb Intel UHD Graphics 15.6" TN FHD (1920x1080) noOS grey WiFi ВТ Cam Intel Core i3 1O05G1 AMD Radeon 64 ПБ памяти DDR4 работающие над одним и тем же проектом, могут повторно использовать один и тот же код, тем самым улучшая совместную работу и свой вклад в его развитие. Система заданий Unity [1] дает возможность писать многопоточный код. Таким образом, можно разрабатывать более крупные, динамичные и сложные 3D-решения, которые работают на различных устройствах. Наконец, «пакетный компилятор» может создавать вы-сокооптимизированный собственный код для конкретных возможностей целевой платформы (смартфоны, компьютеры и консоли). Unity также имеет «Профилировщик» для сбора данных и анализа производительности процессора, графического процессора, процента использования памяти, а также звука и графики. Целью является обнаружение любых аномалий для оценки и оптимизации работы проектов. «Движок» довольно прост в использовании и не требует обучения, если знать его основы. Он обеспечивает поддержку новых разработчиков с достаточным количеством документации. Однако, как уже было сказано выше, это freemium, поэтому могут возникать сложности при использовании некоторых инструментов (например, многопользовательские порты и т. д.).

Анализ

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

Для того чтобы провести сравнительный анализ и проверить эффективность применения в проекте обоих игровых «движков», установлены основные критерии:

  • •    Загрузка процессора (измеряется в процентах);

  • •    Загрузка графического процессора (измеряется в процентах);

  • •    Загрузка оперативной памяти (измеряется в МиБ);

  • •    Значение FPS – кадров в секунду.

Были собраны данные, описывающие использование CPU и RAM с помощью системного монитора, который работает на операционной системе Windows 10. Это позволило сохранить информацию об использовании оборудования, ограниченную только одним процессом. Сбор информации о загрузке графического процессора и значения FPS были захвачены с помощью программы Fraps. Значение FPS было ограничено 60 в обоих случаях, что считается наиболее оптимальным. Проецируемые изображения при этом имеют плавную частоту кадров, а нагрузка на GPU уменьшается с учетом мощности видеокарты.

Результат

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

Наилучшие показатели для «движков» Unity и Unreal показал ноутбук Predator.

Изучив информацию о каждом из рассмотренных процессоров, сделан вывод, что, возможно, количество потоков в каждом блоке было решающим фактором, так как процессор в ноутбуке 1

Средний результат использования CPU при работе Unity и UE5 на разных ноутбуках

■ Predator ■ Lenovo

Рисунок 1. Среднее использование CPU

Рисунок 2. Среднее использование GPU

имеет 4 ядра, а ноутбук 2 имеет только 2 ядра и 4 потока.

На рисунке 2 представлена собранная информация о среднем использовании GPU.

При тестировании во многих ситуациях игровой «движок» Unity достигал лучшего результата по сравнению с конкурентом. На обоих ноутбуках «движок» Unreal добился схожих результатов, который можно округлить до 99 % графического процессора. У «движка» Unity немного лучшая производительность в этой категории на ноутбуке Predator.

На рисунке 3 представлено среднее потребление RAM.

Во время тестирования Unity значение использования оперативной памяти никогда не превышало 250 МБ. Для игрового «движка» Unreal значение колебалось около 3500 МБ.

График среднего значения кадров в секунду показан на рисунке 4. Когда работает Unreal

Engine, ноутбук Lenovo немного уступает в производительности, но при этом все поставленные задачи решить позволяет. Что же касается Unity, то можно сказать, что программа смогла сгенерировать меньше кадров в секунду, чем Unreal, примерно в 10 раз, как для ноутбука Predator, так и для ноутбука Lenovo.

Было проведено сравнение средних значений FPS с графиком среднего использования GPU. Unreal использовал около 99 % ресурсов видеокарты. Это означает, что генерируется больше FPS, чем можно увидеть на рисунке 4. В пользу Unity можно сказать, что FPS не использовала весь GPU вычислительной мощности. Это означает, что улучшение достигнутого FPS-значения еще возможно.

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

Средний результат использования RAM при работе Unity и UE5 на разных ноутбуках

Unity

Predator ■ Lenovo

Рисунок 3. Среднее использование RAM

Средний результат FPS при работе Unity и UE5 на разных ноутбуках

Unity

Predate г ■ Lenovo

Рисунок 4. Среднее использование FPS

Unreal Engine, так и в игровом «движке» Unity. Однако достигнутые эффекты немного отличаются. Хотя оба редактора похожи в использовании с точки зрения создателя и визуальной стороны.

В большинстве случаев Unity имеет преимущество перед конкурирующим «движком», так как самая большая разница между ними в ущерб UE4 – это использование оперативной памяти. Для «движка» Unreal это было 3542 МБ и 1310 МБ соответственно, а для Unity – 209 МБ и 566 МБ. Также выигрывает он и в потреблении ресурсов процессора – Unity использовал вдвое меньше ресурсов, чем у конкурента (4,8 и 14,4 % соответственно). Результаты по потреблению ресурсов графического процессора также в пользу «движка» Unity, использование которых колебалось около 57 %, что на 18 % ниже, чем у второго игрового «движка» при рассмотрении. Что же касается количества сгенерированных кадров в секунду, то на обоих ноутбуках Unreal «движок» работает лучше – в среднем 43 FPS, что было на 10 кадров лучше, чем у Unity.

Заключение

Планируя разработку проекта с элементами виртуальной реальности, нужно определиться с целью использования игровой платформы. Это может быть трехмерный FPS или двухмерный платформер. Иногда необходимо создать симбиоз 2D и 3D или простую логическую головоломку, основанную на элементарной геометрии или физике.

В результате проведенного анализа для реализации проекта был выбран Unreal, так как целью разработки является создание программы обучения на VR. UE4 предлагает широкий спектр инструментов для интеграции реализма и погружения в 3D-решения в реальном времени. Этот «движок» невероятно отзывчив с точки зрения новых дополнений (аппаратного / программного обеспечения), то есть реализации новейших технологий – трассировки лучей, динамических теней, трехмерных отражений, эффектов постобработки, специальных эффектов, инструментов анимации, продвинутых аудиосистем и т. д. А также занимается изучением и разработкой решений для моделирования виртуальных и дополненных реальностей, а самым решающим фактором стал результат анализа FPS, который позволил сделать выбор данной платформы для разработки.

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

  • Линовес Д. Виртуальная реальность в Unity. URL: https://dmkpress.com/files/PDF/978-5-97060-234-8.pdf (дата обращения: 19.08.2020).
  • Макеффри М. Unreal Engine VR для разработчиков. М.: Эксмо, 2019. 256 с.
  • Baker M.P., Wickens C.D. Human Factors in Virtual Environments for the Visual Analysis of Scientific Data: Technical Report, NCSA. 1995.
  • Greengard S. Virtual Reality. Massachusetts: The MIT Press, 2019. 264 p.
  • Jerald J. The VR Book: Human-Centered Design for Virtual Reality. New York: Association for Computing Machinery and Morgan & Claypool, 2016. 550 p.
  • Системы виртуальной, дополненной и смешанной реальности: учеб. пособие / А.А. Смолин [и др.]. СПб.: Университет ИТМО, 2018. 59 с.
  • Виртуальная Реальность. Энциклопедия Кольера: Словари и Энциклопедии. URL: https://www.endic.ru/colier/Virtualnaja-realnost-1818.html (дата обращения: 20.08.2020).
  • Войскунский А.Е., Селисская М.А. Система реальностей: психология и технология // Вопросы философии. 2005. № 11. С. 119-130.
  • Виртуальная реальность. Энциклопедия культурологии. URL: http://dic.academic.ru/dic.nsf/enc_culture/278/ВИРТУАЛЬНАЯ (дата обращения: 19.08.2020).
  • Куксон А., Даулингсок К., Крамплер К. Разработка игр на Unreal Engine 4 за 24 часа. М.: Бамбора, 2019. 528 с.
Еще
Статья научная