УДК 004.9

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

Алпатов Алексей Николаевич – кандидат технических наук, доцент кафедры Инструментального и прикладного программного обеспечения МИРЭА – Российского технологического университета.

Аракелян Андрей Андреевич – студент магистратуры МИРЭА – Российского технологического университета.

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

Ключевые слова: компьютерная графика, LOD, виртуальная реальность, рендеринг, оптимизация.

Введение

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

  1. Низкую производительность из-за сложности сцены и большого количества полигонов;
  2. некорректное отображение текстур из-за неправильного наложения или недостаточной разрешающей способности;
  3. проблемы с освещением, такие как нереалистичные тени или некорректное отражение света от поверхностей объектов;
  4. высокое потребление видеопамяти из-за большого количества высококачественных текстур.

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

Основная часть

Для оценки успешности разработанной стратегии оптимизации рендеринга объектов можно взять отношение количества кадров в секунду к нагрузке на аппаратные ресурсы по формуле (1):

1          (1)

где FPS – количество кадров в секунду;

GPU – использование видеопамяти.

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

В качестве основы для разработки стратегии возьмем распространенную комбинацию таких техник как LOD[4, 5] и тесселяция[6]. Для улучшения выбранной метрики отношения FPS к нагрузке на GPU можно пойти следующим путем: снизив аппаратную загрузку при неизменном количестве кадров итоговое значение вырастает.

Основную нагрузку в механизме LOD с тесселяцией составляет подгрузка и рендеринг реальных файлов текстур разной детализации с последующей обработкой. Для развития этой идеи можно переместить вычисления в виртуальное пространство и рассчитывать виртуальную геометрию микрополигона[7]. Вместо того чтобы использовать несколько уровней детализации и тесселяции для создания дополнительных полигонов механизм должен автоматически адаптировать геометрию в зависимости от расстояния и угла обзора в реальном времени. Это даст способность обрабатывать огромные объемы геометрии, делая это без значительной нагрузки на графический процессор [6].

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

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

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

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

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

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

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

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

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

Также возможно расширение области применения этой технологии на другие аспекты графики и разработки игр. Улучшение интеграции с другими технологиями, такими как физика, искусственный интеллект и анимация, также может привести к созданию более впечатляющих и реалистичных сред в будущих проектах [8, 9].

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

  1. Видеоигры;
  2. архитектурная визуализация;
  3. обучение и симуляция;
  4. производство и прототипирование.

Заключение

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

Список литературы

  1. Welcome to Unreal Engine 4: сайт. – URL: https://www.unrealengine.com/en-US/blog/welcome-to-unreal-engine-4 (дата обращения: 10.12.2022). – Текст: электронный.
  2. Оптимизация GameThread в Unreal Engine 4 ч.1 // Applied Sciences. – 2022. – Vol. 12, № 1. – P. 79. https://habr.com/ru/post/581246.
  3. Реализация многопоточной архитектуры игрового движка: сайт. – URL: https://habr.com/ru/company/intel/blog/266427/ (дата обращения: 10.12.2022). – Текст: электронный.
  4. Level of Detail: сайт. – URL: https://ru.wikipedia.org/wiki/Level_of_Detail (дата обращения 10.12.2022) – Текст: электронный.
  5. How to LODs. – URL: https://docs.unrealengine.com/4.26/en-US/WorkingWithContent/Types/StaticMeshes/HowTo/LODs/ (дата обращения: 10.12.2022). – Текст: электронный.
  6. Tesselation: сайт. – URL: https://en.wikipedia.org/wiki/Tessellation_(computer_graphics) (дата обращения 10.12.2022) – Текст: электронный.
  7. Nanite Virtualized Geometry. – Текст: электронный. – URL: https://docs.unrealengine.com/5.0/en-US/nanite-virtualized-geometry-in-unreal-engine/ (дата обращения: 10.12.2022).
  8. UE5: Lumen. Как использовать и проблемы // Applied Sciences. – 2022. – Vol. 12, № 1. – P. 79. https://dtf.ru/u/291098-the-dolaxom/747372-ue5-lumen-i-nanite-kak-ispolzovat-i-ih-problemy.
  9. Neural Geometric Level of Detail: Real-Time Rendering With Implicit 3D Shapes. // Applied Sciences. – 2022. – Vol. 12, № 1. – P. 79. https://openaccess.thecvf.com/content/CVPR2021/html/Takikawa_Neural_Geometric_Level_of_Detail_Real-Time_Rendering_With_Implicit_3D_CVPR_2021_paper.html.

Интересная статья? Поделись ей с другими: