Если коротко:

Forward Rendering обычно выбирают для автономного VR и сцен с ограниченным числом источников света: он совместим с MSAA и не требует записывать полный G-buffer. Deferred Rendering удобнее для сложного освещения и экранных эффектов на мощном PC, но увеличивает обмен данными с памятью и не всегда доступен на мобильной платформе. Выбор подтверждают профилированием двух репрезентативных сцен на целевой гарнитуре.

Forward vs Deferred Rendering VR — выбор между вычислением освещения при отрисовке объекта и отдельным световым проходом после заполнения буферов материалов. Название пути само по себе не определяет скорость: результат зависит от количества света, геометрии, прозрачности, разрешения двух глаз и функций движка.

Как отличаются два пути

В forward renderer объект проходит шейдинг вместе с влияющими на него источниками света. Современные варианты используют списки lights по tiles или clusters и обходятся без полного набора G-buffer текстур.

Deferred renderer записывает нормаль, цвет, roughness и другие свойства в G-buffer, затем освещает пиксели экрана. Это удобно при множестве динамических источников на непрозрачной сцене.

В VR запись и чтение крупных G-buffer при высоком стереоразрешении повышают bandwidth и расход памяти. Desktop GPU может выдержать обмен, а мобильный чип — упереться в него.

MSAA и резкость в гарнитуре

Epic указывает, что MSAA доступен в forward renderer и в VR может сохранять более резкие геометрические края. Большее число samples увеличивает GPU-время и память, а шейдерный алиасинг и прозрачность MSAA полностью не исправляет.

Deferred чаще сочетают с temporal-сглаживанием, способным дать размытие и ghosting при движении головы. Сравнивайте в гарнитуре; детали есть в материале о MSAA, TAA и TSR.

Освещение и G-buffer

Deferred rendering масштабируется при множестве локальных lights на непрозрачных пикселях. Цена — память, bandwidth и ограничения формата material properties.

Forward renderer может быть эффективнее при одном основном источнике и запечённом свете. Сложность shader всё равно растёт с числом lights; Forward+ лишь сокращает лишнюю работу.

Unity HDRP допускает Forward, Deferred или mode Both для отдельных camera. По документации, deferred часто выигрывает с множеством local lights, а forward — с одним directional light. Both увеличивает build time и shader variants.

Прозрачность и экранные эффекты

Прозрачность обычно требует forward-прохода даже внутри deferred pipeline из-за порядка смешивания слоёв. Частицы и стекло могут уменьшить ожидаемую выгоду deferred.

Epic перечисляет для Unreal Forward Shading отсутствие доступа материалов к G-buffer и части screen-space техник. Deferred сохраняет больше desktop-функций. Перед переключением проверяют material, decal, shadow и post-process.

Мобильный Quest и PC VR

Meta рекомендует forward shading и MSAA для Quest; мобильный renderer использует forward по умолчанию. Это отправная точка, а не доказательство превосходства в любой сцене.

На PC VR Deferred оправдан, если нужны его lighting features и GPU выдерживает кадр. Forward проверяют для MSAA и простой сцены. Foveated rendering не решает выбор автоматически; принцип разобран отдельно.

Как принять решение по профилированию

Соберите две сцены: типичную и самую тяжёлую. Зафиксируйте гарнитуру, refresh rate, render scale и метод сглаживания. Затем сравните:

  • GPU frame time по проходам вместо оценки по итоговому FPS;
  • объём render targets и пропускную способность памяти;
  • стоимость lights, shadows и прозрачности;
  • aliasing и temporal ghosting в движении головы;
  • корректность материалов и нужных эффектов;
  • стабильность на минимальном целевом устройстве.

Меняйте renderer отдельно от теней и разрешения. Автономную сборку измеряйте на устройстве; порядок замеров есть в статье о бюджете производительности VR.

Forward — сильная базовая конфигурация для mobile VR, MSAA и контролируемого освещения. Deferred полезен для сложной непрозрачной сцены и desktop-функций. Финальный путь выбирают по обязательным возможностям и профилю кадра, а не по правилу «VR всегда означает forward».

Поделиться:TelegramВКонтакте

Источники

  1. Unity HDRP 14: Forward and Deferred rendering
  2. Epic: Forward Shading Renderer
  3. Meta: Forward Shading Renderer for Quest