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

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

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

Еще

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

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

IDR: 140297108   |   УДК: 004.946   |   DOI: 10.18469/ikt.2022.20.2.13

Comparative analysis of development tools for training programs using virtual reality

VR is the computer technology used to recreate a simulated environment that is perceived by human through the senses, such as sight, hearing, smell, and touch. Unlike classical user interfaces, virtual reality involves the user in the ongoing actions. Instead of looking at the screen in front of them, users can dig into an immersive artificial world and try to interact with it. Thanks to modern technologies, this world can seem quite real. The article compares technology development tools with elements of virtual reality, such as Unity and Unreal Engine 4. According to the review results, the implementation environment for the study is being selected within the framework of the project supported by the Innovation Assistance Fundunder the UMNIK-VR program within the framework of the contract 390GUTSES8- D3/56666 dated December 27, 2019, related to the development of a for the university education program with regard to the FGOS3++ standarts. This program is intended to be used in the educational process as an application based on VR technologies, allowing a deeper understanding of the material studied. This program will allow students to show things that are not available during conventional education: the experience of working with complex equipment that is available for practical development in virtual reality, with no need for its actual purchase.

Еще

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

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

В рамках проекта разрабатывается образовательная программа с использованием в образовательном процессе приложений, основанных на 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 с.
Еще