Типы рендеринга в UE5
Original size 1140x1600
This project is a student project at the School of Design or a research project at the School of Design. This project is not commercial and serves educational purposes

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

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

big
Original size 1920x1080

перебивка пока что хз что

Прежде чем перейти к разбору каждого из алгоритмов рендеринга в 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

Original size 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

Original size 2230x465

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

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

post

Screen Tracing

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

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

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

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 только активирует свой алгоритм. Поэтому перед выводом секвенции рекомендуется закладывать несколько технических кадров для стабилизации алгоритма.

Original size 1920x900

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

Lumen Software Ray Tracing

post

Surface Cash

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

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

Original size 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 на качество отражений объекта.

Original size 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

Original size 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

0

Демонстрация регулировки параметра Software Ray Tracing Mode в интерфейсе Unreal Engine

Качество Software Ray Tracing напрямую зависит от качества представления Mesh Distance Field.

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

Show -> Visualize -> Mesh DistanceFields / Global DistanceField

Mesh Distance Fields — для просмотра индивидуальных полей мешей

Global Distance Field — для визуализации объединенного глобального поля

0

Демонстрационная сцена для сравнения отображения визуализаций: Mesh Distance Fields, Global Distance Field и обычной сцены

post

Для объектов с тонкими деталями качество представления Distance Field может сильно ухудшаться. Однако качество отображения объекта можно улучшить двумя способами.

Первый из них — Distance Field Resolution Scale, регулируя который, можно увеличить разрешение для отдельного объекта, внутри режима редактирования меша.

Static Mesh Editor → Build Settings → Distance Field Resolution Scale

0

Демонстрационная сцена для сравнения идентичных объектов с различающимся значением Distance Field Resolution Scale: 1.0, 2.0, 5.0. Визуализация Mesh Distance Fields и Global Distance Field

Вторым способом является редактирования параметра Distance Field Voxel Density внутри самого проекта.

Project Settings → Engine → Rendering → Software Ray Tracing → Distance Field Voxel Density

Original size 1242x106

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

Демонстрационная сцена для сравнения идентичных объектов с различающимся значением Distance Field Voxel Density проекта: 0.2 и 0.4 | Параметр Distance Field Resolution Scale объекта = 1.0

! Важно принимать во внимание, что увеличение разрешения или плотности Distance Field приводит к увеличению объема памяти, занимаемого проектом.

Так как значение Mesh Distance Fields просчитываются для каждого меша, это делает систему чувствительной к количеству объектов в сцене. При экстенсивном использовании модульных объектов с многочисленными слоями пересекающихся мешей алгоритм Detail Tracing будет требовать значительных вычислительных ресурсов.

Для облегчения нагрузки в сцене рекомендуется отключить параметр Affects Distance Field Lighting внутри режима редактирования меша у наименее важных объектов, не оказывающих сильного влияния на глобальное освещение или отражения в сцене, тем самым увеличив её производительность.

Original size 1920x300

показываю где отключить

Таким образом Software Ray Tracing обладает следующими значимыми для художника по синематикам ограничениями:

• Ограничение в типе геометрии: воздействует только на Static Meshes (в том числе его вариации) и Landscape terrain.

• При использовании Foliage, внутри настроек Foliage Tool должен быть активирован Affect Distance Field Lighting.

• Разрешение Mesh Distance Field зависит от размера загруженной в движок геометрии — маленький ассет в увеличенном виде не получает улучшенное представление Mesh Distance Field.

Original size 1920x1080

стул маленький при импорте и стул большой при импорте

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

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

• При использовании Software Ray Tracing, Lumen Scene (представление Lumen о сцене, состоящее из Surface Cache, Mesh Distance Fields, Global Distance Field) охватывает только 200 метров от камеры, но это расстояние может быть увеличено до 800 метров с помощью настройки Lumen Scene View Distance в Post Process Volume.

Lumen Hardware Ray Tracing

Lumen Hardware Raytracing — это технология аппаратной трассировки лучей, задействованная внутри Lumen, используемая для физически точного просчета поведения света.

Первое ключевое отличие Lumen Hardware Ray Tracing от Lumen Software Ray Tracing — возможность поддерживать большее количество типов геометрии. В частности возможность поддерживать объекты с ригом.

Помимо этого Hardware Ray Tracing взаимодействует с реальной геометрией, вместо использования Surfase Cash более низкого качества.

Ключевое требование — наличие видеокарты с поддержкой RTX

Original size 1920x300

Перебивка

Hardware Ray Tracing подключается в настройках проекта:

• Project Settings → Engine → Rendering → Lumen → Use Hardware Ray Tracing when available

• Project Settings → Engine → Rendering → Lumen → Ray Lighting Mode → Hit Lighting for Reflection

• Project Settings → Engine → Rendering → Hardware Ray Tracing → Support Hardware Ray Tracing

Original size 2624x674

Использование Hit Lighting for Reflections значительно улучшает качество отражения, что наглядно продемонстрировано в демонстрационной сцене

Original size 1920x1080

колор калибратор с хит лайтингом и сёрф кеш

Аппаратная трассировка лучей обеспечивает улучшенное качество Lumen, однако является более ресурсоемкой, особенно при сильном увеличении количества объектов в сцене.

Однако для Detail Traces подключенный Hardware Ray Tracing обеспечивает лучшее качество при аналогичных затратах на производительность по сравнению с Software Ray Tracing.

! При сильно нагруженной сцене убрать влияние Ray Tracing на менее значимые ассеты можно отключив Visible In Ray Tracing в Details объекта.

Original size 1920x1080

гиф с отключением

Способы визуализации технических деталей Lumen

Original size 1000x514

Hardware Ray Tracing

post

Тем не менее, Hardware Ray Tracing не ограничивается системой Lumen. Безусловно, часть технологий, использующих Hardware Ray Tracing, интегрирована в Lumen, однако некоторые функции остаются автономными.

Ключевая отдельная от Lumen функция — Ray Traced Shadows, определяющая качество мягких теней.

Опция подключается в настройках проекта: Project Settings → Engine → Rendering → Direct Lighting → Ray Traced Shadows


Демонстрационная сцена сравнения Lumen без Hardware Ray Tracing и Lumen с Hardware Ray Tracing.
Original size 1920x300

Демонстрация подключения Ray Traced Shadows в интерфейсе Unreal Engine

Ray Traced Shadows значительно превосходит классическую Virtual Shadow Map или классические Shadow Map.

Более заметна разница при использовании источников освещения с увеличенным Source Radius (для Point, Spot, and Rect источников освещения) или Source Angle (для Directional Light)

Original size 1920x1080

Сравнение Ray Traced и Virtual Map при разных настройках источников освещения

Path Tracer

post

Path Tracer — это современная технология оффлайн рендеринга с аппаратным ускорением, компенсирующая недостатки рендеринга в реальном времени. Технология обеспечивает физически корректное глобальное освещение, отражение и преломление материалов, а также другие эффекты, при этом требуя минимальной или нулевой дополнительной настройки для достижения чистого фотореалистичного рендера.

Path Tracer основывается на архитектуре Hardware Ray Tracing, однако в отличие от него просчитывает десятки и сотни лучей на один пиксель.


Демонстрационная сцена сравнения Lumen с Hardware Ray Tracing и Path Tracer

Системные требования для использования Path Tracer:

 — Операционная система Windows 10 1809 или более поздняя версия  — GPU: NVIDIA RTX and DXR driver-enabled GTX series graphics cards

Path Tracer подключается в настройках проекта:

Project Settings → Engine → Rendering → Hardware Ray Tracing → Path Tracing

Original size 1856x334

Демонстрация подключения Path Tracing в интерфейсе Unreal Engine

Включить отображение через Path Tracer в сцене можно в меню View Mode.

После подключения в окне отображения сцены сразу начнется просчет семплов, постепенно увеличивающий их число пока камера неподвижна. Когда целевое количество семплов будет достигнуто, к кадру будет применен Denoise (при условии что он активирован в настройках Path Tracer у post Process Volume), чтобы удалить все оставшиеся шумы.

Original size 1303x639

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

Время затраченное на просчёт во многом зависит от сложности сцены и материалов:

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

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

Таким образом, Path Tracer представляет собой ресурсоемкий оффлайн-рендер, характерный для классических 3D-программ, однако самый корректный по свету и материалам из всех представленных в Unrel Engine.

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

Image sources
1.
Типы рендеринга в UE5
Chapter:
1
2
3
4
5
6
We use cookies to improve the operation of the website and to enhance its usability. More detailed information on the use of cookies can be fo...
Show more