Version: 2019.2
Deferred shading rendering path
Способ рендеринга отложенного освещения

Детали упреждающего типа рендеринга

На этой странице подробно рассказано про упреждающий (Forward) тип рендеринга.

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

Детали реализации

При упреждающем рендеринге, некоторое количество самых ярких источников света, влияющих на каждый объект, рендерится в режиме полной попиксельной подсветки. Далее до 4 точечных источников света рассчитываются повертексно. Остальные источники света рассчитываются по сферическим гармоникам (Spherical Harmonics, SH), которые значительно быстрее, но выдают усреднённый результат. Будет ли источник света считаться попиксельно или нет, зависит от этого:

  • Источники света всегда считаются повертексными или SH, если значение их свойства Render Mode (режим рендера) установлено в Not Important (не важно).
  • Самый яркий из направленных источников света всегда является попиксельным.
  • Источники света всегда считаются попиксельными, если значение их свойства Render Mode установлено в Important (важно).
  • Если в результате вышеперечисленного, количество источников света будет меньше текущего Pixel Light Count (количества пиксельных источников освещения), указанного в настройках качества, тогда в порядке убывания яркости, попиксельно отрендерится ещё некоторое количество источников света.

Вот как происходит рендеринг каждого объекта

  • Базовый проход применяет один направленный попиксельный источник света и все повертексные/SH источники света.
  • Остальные попиксельные источники света рендерятся в дополнительных проходах, один проход на один источник света.

For example, if there is some object that’s affected by a number of lights (a circle in a picture below, affected by lights A to H):

Предположим, что источники света с A по H имеют одинаковый цвет и интенсивность, и у всех стоит Auto режим рендеринга (св-во Render Mode имеет значение Auto), чтобы для подсвечиваемого объекта все эти источники сортировались в порядке их расположения. Самые яркие источники света будут рендериться в попиксельном режиме (от A до D), далее не более 4 следующих источников - в повертексном режиме (от D до G), и, наконец, остальные - в SH режиме (от G до H):

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

Базовый проход

Базовый проход рендерит объект используя один попиксельный направленный источник света и все SH источники. Этот проход также добавляет любые карты освещения, освещение окружения и излучающее освещение от шейдера. Направленный свет, который рендерится в этом проходе, может иметь тени. Учтите, что объекты, к которым применены карты освещения, не получают освещение от SH источников освещения.

Note that when “OnlyDirectional” pass flag is used in the shader, then the forward base pass only renders main directional light, ambient/lightprobe and lightmaps (SH and vertex lights are not included into pass data).

Дополнительные проходы

Каждый действующий на объект попиксельный источник света приводит к рендерингу дополнительных проходов. Источники света в этих проходах не могут иметь теней (в итоге, упреждающий рендеринг поддерживает один направленный источник света с тенями).

Вопросы производительности

Источники освещения на сферических гармониках рендерятся очень быстро. Они потребляют совсем немного CPU ресурсов и вообще не потребляют GPU ресурсов (то есть, в базовом проходе всегда рассчитывается SH освещение, но потребление ресурсов не зависит от количества SH источников света благодаря тому, как они работают).

Недостатки SH источников света:

  • Они рассчитываются не на пикселях, а на вершинах объекта. Значит, они не поддерживают Light Cookies (источники света с cookie текстурами) и карты нормалей.
  • SH освещение очень низкочастотное. У вас не может быть резких переходов освещения при использовании SH источников света. Кроме того, они влияют только на диффузное освещение (частота слишком мала для зеркальных бликов).
  • SH освещение не локально; точечные или прожекторные SH источники света, расположенные близко к некой поверхности будут “выглядеть неправильно”.

Таким образом, SH источники обычно достаточно хороши для небольших динамических объектов.

Deferred shading rendering path
Способ рендеринга отложенного освещения
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961