Глава I | Современные технологии рендеринга в Unreal Engine 5
Исходный размер 2480x3500

Глава I | Современные технологии рендеринга в Unreal Engine 5

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

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

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

Прежде чем перейти к разбору каждого из алгоритмов рендеринга в Unreal Engine 5, необходимо разобраться с такими терминами как Software Ray Tracing (Программная Трассировка Лучей) и Hardware Ray Tracing (Аппаратная Трассировка Лучей)

Software Ray Tracing — это реализация трассировки лучей с помощью программных алгоритмов. В таком случае при рендеринге будут использоваться ресурсы CPU 1 или GPU 2, имеющиеся в наличии у устройства.
CPU 1 — от англ. central processing unit — центральное обрабатывающее устройство — центральный процессор. GPU 2 — от англ. graphics processing unit — графический процессор.
Hardware Ray Tracing — это реализация трассировки лучей при помощи специализированных компонентов RTX-видеокарты (RT-ядра GPU)

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

Lumen

Исходный размер 1920x300

Демонстрация принципов глобального освещения программной трассировки лучей Lumen.

Lumenэто система динамического глобального освещения1 и отражений, представленная в Unreal Engine 5.0 с момента её релиза в 2022 году.

Данная технология представляет собой комплексный алгоритм, работающий в режиме реального времени, поддерживающий два метода трассировки лучей в сцене: Software Ray Tracing и Hardware Ray Tracing (при наличии необходимого оборудования)


Глобальное освещение1 (global illumination) — термин, известный также как «непрямое освещение» (indirect lighting/indirect illumination), описывающий взаимодействие света с геометрией и материалами поверхностей, при котором каждая поверхность рассматривается как источник, излучающий свет своего локального цвета с учётом поглощающей и отражающей способности материалов.

1 — Без системы глобального освещения и отражений Lumen. 2 — С системой глобального освещения и отражений Lumen

Активация Lumen требует подключения в настройках проекта.

Для глобального освещения: Project Settings → Engine → Rendering → Global Illumination → Dynamic Global Illumination Method → Lumen

Для отражений: Project Settings → Engine → Rendering → Reflections → Reflection Method → Lumen

Исходный размер 2230x465

Демонстрация подключения глобального освещения и отражений Lumen в интерфейсе Unreal Engine

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

post

Screen Tracing

Первый метод, который Lumen использует до обработки изображения трассировкой лучей (как Software Ray Tracing, так и Hardware Ray Tracing), представляет собой технологию Screen Tracing.

Её сущность заключается в испускании лучей из позиции камеры для идентификации объектов, находящихся в её поле зрения на текущий момент. Таким образом, Screen Tracing позволяет оптимизировать вычислительные ресурсы, обеспечивая улучшение графики исключительно в пределах видимой области.

Технология Screen Tracing активирована в движке по умолчанию при использовании Lumen. Управление данным параметром осуществляется через два интерфейса:

1. В разделе визуализации: Show → Lumen → Screen Traces

2. Через Post Process Volume (изменение отобразится при рендере секвенции): Post Process Volume → Lumen Global Illumination & Lumen Reflections → Screen Traces

Расположение параметра в интерфейсе Unreal Engine | 1. Show → Lumen → Screen Traces | 2. Post Process Volume → Lumen Global Illumination & Lumen Reflections → Screen Traces

Тем не менее, применение технологии Screen Tracing сопряжено с возникновением ряда потенциальных артефактов. Согласно официальной документации, повышение интенсивности непрямого освещения (Indirect Lighting Intensity) источников света приводит к увеличению заметности переходов, связанных с активацией алгоритма Screen Tracing.

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

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

Исходный размер 1920x900

Демонстрация артефактов на стыках объектах при нахождении на периферии кадра. Indirect Lighting Intencity источника света — 10.0

Lumen Software Ray Tracing

post

Surface Cash

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

! Mesh Cards можно визуализировать с помощью консольной команды: r.Lumen.Visualize.CardPlacement 1

Исходный размер 1890x740

Визуализация распределения Mesh Cards у одинаковых ассетов с разным значением Max Lumen Mesh Cards: 12, 4, 1, 0

По умолчанию Unreal Engine генерирует 12 таких плоскостей (Cards), однако это значение можно регулировать

Static Mesh Editor → Build Settings → Max Lumen Mesh Cards.

Это может быть уместно для обработки ассетов комплексных интерьеров, целиком загруженных как единый Static Mesh. При появлении визуальных артефактов на подобного рода объектах со сложной геометрией, можно проверить количество информации, которое получает Surface Cash от данного объекта, визуализировав параметр

Level Editor → Lumen → Surface Cash.

При данной визуализации розовым цветом обозначены области с недостаточным объемом данных в Surface Cache.

Разбиение сложносоставных ассетов на компоненты также способствует устранению возникающих артефактов.
0

Наглядный пример недостающего объема информации Surface Cash для объекта с параметром Max Lumen Mesh Cards = 1

Surface Cash является критически важным параметром не только для сложных интерьерных ассетов, но и для объектов с простой геометрией.

На демонстрационной сцене визуализировано влияние недостаточности данных Surface Cache на качество отражений объекта.

Исходный размер 1920x642

Визуализация артефактов в отражении у одинаковых ассетов с разным значением Max Lumen Mesh Cards: 12, 4, 1, 0

По умолчанию Lumen использует Software Ray Tracing на основании Signed Distance Fields - технология, где для любой точки в 3D-пространстве хранится расстояние до ближайшей поверхности объекта. Для чего требует включения лишь одной настройки: Project Settings → Engine → Rendering → Software Ray Tracing → Generate Mesh Distance FIelds

Исходный размер 1242x106

Демонстрация регулировки параметра Generate Mesh Distance FIelds в интерфейсе Unreal Engine

Технология использует двухуровневую структуру, сочетая реализацию трассировки через использование Mesh Distance Fields (индивидуальные поля для каждого меша) и Global Distance Field (низкополигональное обобщенное представление всей геометрии в сцене)

Пользователю доступны две опции реализации программной трассировки лучей: Detail Tracing и Global Tracing.

Detail Tracing - метод по умолчанию, обеспечивающий высшее качество за счет использования индивидуальных Signed Distance Fields для каждого меша. На расстоянии первых 2 метров от камеры объекты обрабатываются с повышенной точностью (используя Mesh Distance Field), а оставшаяся часть обрабатывается с использованием Global Distance Field.

Global Tracing - трассирует лучи только через Global Distance Field для максимальной скорости.

Переключение между опциями так же доступно в настройках проекта: Project Settings → Engine → Rendering → Lumen→ Software Ray Tracing Mode

Глава I | Современные технологии рендеринга в Unreal Engine 5
Проект создан 10.12.2025
Глава:
1
2
3
4
5
6
Мы используем файлы cookies для улучшения работы сайта НИУ ВШЭ и большего удобства его использования. Более подробную...
Показать больше