Version: 5.5
LOD for baked lightmaps
Light Probe Proxy Volumes component

Light Probes

Хоть лайтмаппинг и вносит существенный вклад в реализм сцены, он имеет один недостаток: не статичные объекты в сцене отрисовываются менее реалистично и в результате могут смотреться неестественно. Невозможно просчитать карты теней в реальном времени для движущихся объектов, но можно получить похожий эффект с помощью light probes (зондов освещения). Их идея в том, чтобы освещение выбиралось в стратегически важных (для освещения) точках сцены, обозначенных с помощью размещения зондов. После этого, свет в любой точке может быть аппроксимирован с помощью интерполяции между выборками, которые совершили ближайшие зонды. Интерполяция помогает избежать несоответствия освещения динамических объектов, и статичных объектов, к которым применены карты освещения, кроме того, интерполяция достаточно быстра, чтобы её можно было использовать во время игры.

Добавление зондов освещения

К любому доступному в сцене объекту можно добавить компонент для создания групп зондов освещения - Light Probe Group (меню: Component -> Rendering -> Light Probe Group). С помощью инспектора можно добавлять новые зонды в группу. В сцене зонды отображаются как жёлтые сферы, и их можно размещать в пространстве таким же образом, как и любые другие GameObject’ы. Также, можно дублировать выбранные зонды с помощью стандартного сочетания клавиш (ctrl+d/cmd+d).

Размещение зондов освещения

Запомните, что размещать зонды следует там, где вы желаете производить выборку света или темноты. Чтобы разбиение пространства работало правильно, зонды должны образовывать объём в сцене.

Самый простой способ размещения - выставить их в виде обычной 3D сетки. Хоть этот способ эффективен и прост, обычно он негативно сказывается на потреблении памяти (в основе каждого зонда освещения лежит сферическое панорамное HDR изображение вида из текущей точки выборки). Стоит отметить, что зонды необходимы только в тех областях сцены, в которых могут перемещаться игроки, NPC или другие динамические объекты. Кроме того, не обязательно использовать большое количество зондов в областях, где освещение не меняется слишком сильно, т.к. условия освещения интерполируются в пространстве между зондами. Например, большое количество зондов не требуется ни в большой области равномерной тени, ни в ярко освещённой области вдали от зеркальных объектов. В основном зонды требуются в зонах резкого изменения условий освещения, например, на границе затенённой области, или в местах, где части окружения имеют различную окраску.

В некоторых случаях, инфраструктура игры подскажет как лучше расположить зонды. Например, в гоночной игре по треку обычно расставлены маршрутные точки для AI и других целей. Они являются хорошими кандидатами для расположения зондов и скорее всего будет не трудно расставить их программно, из editor скрипта. Аналогично можно поступить и с навигационными мешами, т.к. они обычно используются для определения областей, в которые может попасть игрок, что позволяет применить автоматизированное размещение зондов.

Здесь запечены зонды освещения на поверхностях, по которым могут передвигаться персонажи, но только в тех местах, где есть интересные для захвата изменения освещения:

Плоские 2D уровни

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

Good: This is the original probe placement. The characters can move up the ramps and up onto the boxes, so its good to sample lighting up there as well.
Good: This is the original probe placement. The characters can move up the ramps and up onto the boxes, so it’s good to sample lighting up there as well.
Good: Here we assume the characters can only move on the plane. Still, theres a couple of probes placed a little bit higher, so that a volume is formed and thin cell are avoided.
Good: Here we assume the characters can only move on the plane. Still, there’s a couple of probes placed a little bit higher, so that a volume is formed and thin cell are avoided.
Bad: The probes are placed too flat, which creates really long and thin cells and produces unintuitive interpolation results.
Bad: The probes are placed too flat, which creates really long and thin cells and produces unintuitive interpolation results.

Использование зондов освещения

Включите опцию Use Light Probes компонента Mesh Renderer чтобы меш, указанный в этом компоненте, получал освещение от системы зондов.

Интерполяции зонда требуется точка в пространстве для представления положения меша, на который падает свет. По умолчанию используется центр ограничительной рамки (bounding box), но можно переопределить точку с помощью присвоения Transform’а свойству Anchor Override компонента Mesh Renderer (тогда позиция указанного Transform’а будет использоваться в качестве точки интерполяции). Это может пригодиться в случае, когда объект содержит два прилегающих друг к другу меша; свет может выглядеть неестественно в месте соединения мешей, если оба меша подсвечиваются одинаково, в соответствии с положением их ограничительных рамок. Этого можно избежать с помощью одного Transform’а (например, родительского или дочернего объекта) в качестве точки интерполяции для обоих меш рендереров.

Another option is to use a grid of interpolated light probes by setting the Light Probe Blend Mode option to Use Proxy Volume and using an additional LightProbeProxyVolume component. This component will generate a 3D grid of interpolated light probes inside a bounding volume where the resolution of the grid can be user specified. The spherical harmonics coefficients of the interpolated light probes are updated into 3D textures which are sampled at render time to compute the contribution to the diffuse ambient lighting. This will add a spatial gradient and it’s useful for large dynamic objects, particle systems or skinned mesh objects that cannot use lightmaps.

Если в режиме Light Probes окна Scene выбрать объект использующий зонды освещения, над ним отобразится его интерполированный зонд для предварительного просмотра. Интерполированный зонд - это зонд, используемый в процессе отрисовке объекта, он соединён 4мя тонкими голубыми линиями (3мя, если находится не в объёмной области зонда) с зондами, между которыми он интерполируется:

Режимы лайтмаппинга

Всё статичное освещение (включая источники света, установленные в режим лайтмаппинга “Auto”) запекается в зонды освещения, если включен режим одиночных и направленных карт освещения.

В режиме двойных карт освещения зонды будут содержать информацию об освещении в той же конфигурации, что и “Near” (ближние) карты освещения, т.е. полное освещение от неба, излучающих материалов, area источников света и “Baked Only” источников света, но только непрямое освещение от “Auto” источников света. Благодаря этому, объект может освещаться “Auto” источниками света в реальном времени и получать такие преимущества динамических объектов как динамические тени, но в то же время, получать непрямое освещение, добавляемое в сцену этими источниками света.

LOD for baked lightmaps
Light Probe Proxy Volumes component