This page describes the Forward rendering path in Unity’s Built-in Render Pipeline.
Forward rendering renders each object in one or more passes, depending on lights that affect the object. Lights themselves are also treated differently by Forward Rendering, depending on their settings and intensity.
In Forward rendering, some number of brightest lights that affect each object are rendered in fully per-pixel lit mode. Then, up to 4 point lights are calculated per-vertex. The other lights are computed as Spherical Harmonics (SH), which is much faster but is only an approximation. Whether a light will be a per-pixel light or not is dependent on this:
Вот как происходит рендеринг каждого объекта
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 источников света:
Таким образом, SH источники обычно достаточно хороши для небольших динамических объектов.