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

Legacy — устаревший метод рендеринга в Unreal Engine, предоставляющий собой упрощённый подход к офлайн-рендерингу и предоставляющий минимальный интерфейс для вывода последовательности кадров или статичных изображений.
Ключевым приоритетом ее использования является возможность значительно снизить нагрузку на устройство при рендере
Окно редактирования предоставляет необходимый базовый набор настроек для вывода, включая формат изображения (Image Output Format), разрешение (Resolution), частоту кадров (Frame Rate) и другие параметры.

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

Демонстрация настройки рендеринга Legacy в интерфейсе Unreal Engine
Так как для улучшения качества рендеринга стекла при использовании Hardware Ray Tracing было принято решение перейти на разрешение изображения 3840×2048, этот принцип был сохранен и здесь.
Просчет секвенции 4k занял 9 минут Однако потребовались значительные вычислительные ресурсы графического процессора (GPU).

Рендер секвенции с использованием метода вывода Legacy
В случае ограниченных вычислительных возможностей устройства, можно еще сильнее облегчить нагрузку убрав параметр Cinematic Engine Scalability.
Демонстрация настройки рендеринга Legacy в интерфейсе Unreal Engine
При использовании Legacy обязательно необходимо предусмотреть дополнительные технические кадры для «разогрева», в противном случае начальные кадры последовательности могут содержать визуальные артефакты.
Демонстрация первого технического кадра секвенции, когда точность визуализации минимальная. Погрешность рендера — один из объектов и вовсе не отображается, стекло выдает шум.
Помимо этого Legacy предоставляет возможность активации функции Burn In, удобную для использования при создании синематика.
Суть функции заключается в наложении на изображение информации, связанной с текущей секвенцией: название секвенции, тип камеры, дата рендера и др.
Демонстрация подключения Burn In в Legacy в интерфейсе Unreal Engine 5
Результат вывода секвенции методом Legacy с дефолтной настройкой Burn In
Несмотря на то, что возможности Legacy ограничены по сравнению с более современными методами, его использование может сэкономить вычислительные ресурсы, например, для превизуализации будущего проекта, где качество не так важно, или в сценах, где детальный просчет материалов не важен.
В некоторых случаях Legacy может стать «спасительным» методом при возникновении ошибок или конфликта сцены с Movie Render Queue.
Демонстрация переключение метода вывода секвенции на Movie Render Queue в интерфейсе Unreal Engine
Movie Render Queue (MRQ) — современная система офлайн-рендеринга в Unreal Engine, обеспечивающая профессиональное качество вывода за счёт управляемого семплинга, рендера отдельных пассов и возможность тонкой настройки оптимизации с помощью консольных команд. Является базовым стандартом офлайн-рендеринга Unreal Engine 5.
Демонстрация Movie Render Queue в интерфейсе Unreal Engine
Базовые настройки Movie Render Queue идентичны с теми, что представлены в Legacy. Тем не менее, присутствуют изменения в способе их подключения.
Для изменения настроек, например, расширения файлов итоговой секвенции, необходимо воспользоваться меню «+Setting», выбрать требуемый тип и отключить параметр, установленный по умолчанию. Данный подход требует ручного добавления и настройки каждого параметра.
Демонстрация подключения Burn In в Movie Render Queue в интерфейсе Unreal Engine
Movie Render Queue так же как и Legacy предоставляет возможность использовать инструмент Burn In, фиксируя при этом значительно больший объём информации о секвенции.
Результат вывода секвенции методом Movie Render Queue с дефолтной настройкой Burn In
Ключевое отличие от Legacy заключается в расширенных возможностях, которые предоставляет Movie Render Queue.
Одна из главных таких возможностей — использование технологии Anti-Aliasing для подавления шума и артефактов, при помощи управления количеством просчетов одного кадра.
Эта настройка не активирована по умолчанию и требует подключения через «+ Settings»
Качество и скорость антиалязинга контролируются двумя главными параметрами в настройке Anti-Aliasing конфигурации MRQ:
Демонстрация подключения Anti-aliasing в интерфейсе Unreal Engine
Spatial Sample Count — количество пространственных семплов на один кадр. Движок рендерит один и тот же момент времени несколько раз с небольшими смещениями камеры для выборки по пространству. Такая техника борется со «ступенчатостью» на статичных объектах, однако при повышении значения увеличивает время рендера.
Temporal Sample Count — количество семплов, разбивающих время открытия затвора камеры на подкадры, тем самым улучшая размытие в движении.
Таким образом, баланс между выбором количества Spatial Sample Count и Temporal Sample Count зависит от характера секвенции.
Для статичного изображения приоритетном будет повышение Spatial Sample Count. Для анимаций и движения камеры лучше использовать больше Temporal Sample Count.
Это баланс между качеством изображения и временем рендера, настраиваемый под конкретные задачи.
Ещё одним важным инструментом для тонкой настройки результата рендеринга являются консольные команды (console variables)
Unreal Engine 5 предоставляет доступ к обширной библиотеке консольных команд, каждая из которых оказывает целевое воздействие на строго определённый аспект работы движка.
Примером такой команды может послужить, например, команда
r.ScreenPercentage — значение
При использовании данной команды движок рендерит кадр в более высоком разрешении, а затем сжимает его до целевого. Или, рассмотренная ранее, команда для просчета тени от Translucent материала:
r.Raytracing.Shadows.Translucency 1
! Добавлять консольные команды следует исключительно при наличии полного понимания их назначения и уверенности в их необходимости для достижения поставленной цели.
Демонстрация подключения Console Variables в интерфейсе Unreal Engine
Просчет секвенции 4k методом вывода Movie Render Queue в рамках предыдущей главы занял 31 минуту .
Рендер секвенции с использованием метода вывода Movie Render Queue

Movie Render Graph — это современная система в Unreal Engine для высококачественного оффлайн-рендеринга сложных сцен, являющаяся улучшенной версией Movie Render Queue. Это нодовая система, позволяющая гибко настраивать и процесс рендеринга.
По своей сути, Movie Render Graph не является конкурирующей с Movie Render Queue технологией, а представляет собой её логическое развитие, усовершенствованный метод, реализованный поверх общей архитектурной основы Movie Render Pipeline.
Для того чтобы начать собирать систему необходимо создать Movie Graph Config
Демонстрация базовой конфигурации нод в Movie Graph Config для Movie Render Graph в интерфейсе Unreal Engine
По своей логической структуре сейчас Movie Render Graph Config собран так же как и дефолтные настройки Movie Render Queue.
Далее рассмотрим ключевые ноды для понимания устройства этой системы.
Global Output Settings
Одна из первостепенно значимых нод, определяющих базовые параметры вывода секвенции: директорию, количество кадров в секунду и др.
Демонстрация Global Output Settings в интерфейсе Unreal Engine
Render Layer
Нода для вывода слоя в Movie Render Graph. Так как при рендере в нем слоев может быть, отдельные настройки под каждый слой назначаются именно в нее. Так же по той причине, что слоев может быть много, рекомендуется называть их логично и разборчиво.
Демонстрация Render Layer в интерфейсе Unreak Engine
.Чтобы изменить формат вывода секвенции, нужно заменить ноду, ведущую в Render Layer, на необходимый тип данных.
Демонстрация подключения .png Sequence в интерфейсе Unreak Engine
Deferred Rendering
Deferred Rendering является центральным элементом графа, отвечающим за рендеринг сцены с помощью классического отложенного (deferred) пайплайна Unreal Engine.
Из особенно значимых настроек для создания кинематографичного синематика в ней присутствуют выбор алгоритма сглаживания (Anti Aliasing Method) и выбор количества семплов просчета (Spatial Sample Count)
Sampling Method
Нода, добавляющая параметр Temporal Sample Count для повышения качества расчёта секвенции. По умолчанию отсутствует в графе и должна быть добавлена в его глобальную ветку (Global Context). Это обеспечивает единый временной контекст для всех рендер-слоёв.
Демонстрация Sampling Method в интерфейсе Unreak Engine
Далее будет рассмотрен способ рендера объектов раздельно друг от друга. В случае экспериментальной сцены стекло будет порендерено отдельно от остальной секвенции.
Ноды Collection и Modifier
В совокупности эти ноды позволяют выбрать группу объектов (коллекцию) и применить к ним определённые изменения. В рамках экспериментальной сцены они использовались для разделения объектов на отдельные слои.
Ноды необходимо достать в граф и расположить друг за другом в ветке слоя.

В ноде Collection нужно создать новую группу через «+Condition Group», в ней выбрать тип «Actor», а далее выбрать все объекты, которые будут «вырезаны» из слоя, а именно фон.
После необходимо выбранные объекты необходимо добавить в коллекцию, для удобства использовав «Add Selected In Outliner»
Таким образом выбранные объекты будут добавлены в Collection.

Далее, с использованием ноды Modifier, созданная коллекция будет «вырезана» из рендера.
Для этого необходимо в Collections выбрать нужную для скрытия коллекцию и прожать Holdout — эта функция исключит фон из рендера.
Для того чтобы отрендерить только фон без стекла будет выбрана функция Is Hidden
Повторив то же самое но со стеклом в коллекции и Is Hidden в Modifier, будет получена следующая система нод:
Демонстрация нодовой системы с двумя слоями для рендера в интерфейсе Unreal Engine
Далее остается добавить каналы вывода в Outputs и Movie Graphp Config будет готов к рендеру по слоям.
Теперь, в Movie Render Queue Settings, необходимо переключиться на Movie Render Graph (Beta), после чего выбрать созданный Movie Gaph Config.
Секвенция готова к рендеру.

Таким образом, были получены рендера по двум независимым слоям для последующего композитинга:


1. Рендер слоя, содержащего стекло | 2. Рендер слоя фона
Далее необходимо зарендерить дополнительные каналы для дальнейшего композитинга.

Для этого необходимо обратиться к ноде Deferred Render. В разделе Post Process Materials необходимо назначить материалы для рендера необходимых каналов и назначить их Enabled.
Найти дефолтные материалы можно по пути: All /EngineData /Engine /BufferVisualization или /All /EngineData /Plugins MovieRenderPipeline /Materials
Либо можно собрать самостоятельно.
! Чтобы предотвратить ошибку, в ноде формата вывода в конце File Name Format необходимо указать .{renderer_sub_name}
Теперь можно зарендерить все выбранные каналы. Но стоит учесть что некоторые каналы не обрабатывают Translucent , поэтому перед началом рендера на такие объекты стоит назначить материал Opaque для точности просчета.
Подготовленная сцена с материалами, переключенными в Opaque.
Просчет секвенции 2k со всеми представленными слоями и каналами занял 2 часа 35 минут.


1. Рендер канала глубины (Scene Depth) | 2. Рендер канала Subsurface Color
Таким образом, для демонстрационной сцены были порендерены каналы для дальнейшей постобработки
В ходе эксперимента подтвердилось предположение о том, что каждый из рассмотренных методов создания секвенции потенциально способен обеспечить высокое качество рендеринга.
Однако из всех именно Movie Render Graph предоставляет существенно более широкие возможности, обеспечивает детализированную настройку каждого этапа пайплайна и даёт контролируемый результат с возможностью последующей доработки, что формирует его ключевое преимущество перед Legacy Pipeline и классическим Movie Render Queue.