Unity 6.3
0 онлайн 20 гостей 3 в системе
Вход

Расположение G-буфера в путях отображения Deferred и Deferred+ в URP

На следующей иллюстрации показана структура данных для каждого пикселя целей рендеринга, которые Unity использует в G-буфере в пути рендеринга Deferred и Deferred+.

Структура данных целей отображения, которые Unity использует в путях отображения Deferred и Deferred+
Структура данных целей отображения, которые Unity использует в путях отображения Deferred и Deferred+

Unity использует передний проход рендеринга для рендеринга следующих шейдеров по умолчанию:

  • Complex Lit: модель освещения слишком сложна, чтобы поместиться в G-буфер.
  • Baked Lit или Lit: Нет освещения в реальном времени, поэтому Unity рендирует данные в поле Emissive/GI/Lighting G-буфера. Это быстрее, чем использование отложенного прохода рендеринга.

Альбедо (sRGB)

Это поле содержит цвет альбедо в 24-битном формате sRGB.

MaterialFlags

Это поле является битовым полем, которое содержит флаги материалов:

  • Бит 0, ReceiveShadowsOff: если установлен, пиксель не получает динамических теней.
  • Бит 1, SpecularHighlightsOff: если установлен, пиксель не получает зеркальных подсветок.
  • Бит 2, SubtractiveMixedLighting: если установлен, пиксель использует режим субтрактивного освещения.
  • Бит 3, SpecularSetup: если установлен, материал использует зеркальный рабочий процесс.

Биты 4-7 зарезервированы для будущего использования.

Зеркало

Это поле содержит следующие 24-битные значения:

  • Простой материал: RGB зеркальный цвет, хранящийся в 24 битах.
  • Освещенный материал с металлическим рабочим процессом: Отражаемость хранится в 8 битах. Остальные 16 бит не используются.
  • Освещенный материал с зеркальным рабочим процессом: RGB зеркальный цвет, хранящийся в 24 битах.

Окклюзия

Это поле содержит значение печеного окклюзии от печеного освещения. Для освещения в реальном времени, Unity рассчитывает значение окклюзии окружающего пространства, объединяя значение печеного окклюзии с окклюзией окружающего пространства экрана (SSAO).

Нормальная

Это поле содержит нормы мирового пространства, закодированные в 24 бита. Дополнительную информацию см. в Включить точные нормы G-буфера в Путь отложенного отображения.

Гладкость

В этом поле хранится значение гладкости для материалов Simple Lit и Lit.

Излучающий/GI/Осветление

Эта цель рендеринга содержит вывод эмиссии материала и освещение печенья. Unity заполняет это поле во время рендеринга G-буфера. Во время отложенного рендеринга Unity хранит результаты освещения в этой цели рендеринга.

Формат по умолчанию — B10G11R11_UFloatPack32.

Unity использует R16G6B16A16_SFloat, если выполнено одно из следующих условий:

  • В активе URP, Настройки качества > HDR включены, но платформа сборки не поддерживает HDR.
  • В окне настроек Игрок, PreserveFramebufferAlpha включены.

Если Unity не может использовать B10G11R11_UFloatPack32 или R16G6B16A16_SFloat, он использует формат по умолчанию HDR.

ShadowMask

Unity добавляет эту цель рендеринга в раскладку G-буфера, когда вы устанавливаете Режим освещения на Субтрактивный или Маска тени.

Маска слоя рендеринга

Unity добавляет эту цель отображения в раскладку G-буфера при включении Слои рендеринга.

Глубина как цвет

Unity добавляет эту цель рендеринга в раскладку G-буфера, когда вы включаете Native Render Passes, и платформа их поддерживает. Unity рендеринг глубины в качестве цвета в этой цели рендеринга. Эта цель рендеринга имеет следующую цель:

  • Улучшает производительность на Vulkan устройствах.
  • Позволяет Unity получить буфер глубины на платформах, которые используют графику Metal API, которая не позволяет получить глубину из буфера DepthStencil в одном и том же проходе рендеринга.

Формат этой цели отображения — GraphicsFormat.R32_SFloat.

DepthStencil

Unity резервирует четыре самых высоких бита этой цели рендеринга для типа материала. Дополнительную информацию см. в Теги Pass в ShaderLab для URP.

Формат этой цели отображения D32F_S8 или D24S8, в зависимости от платформы.

Дополнительные ресурсы