Использование зондов освещения
Хоть лайтмаппинг и вносит существенный вклад в реализм сцены, он имеет один недостаток: не статичные объекты в сцене отрисовываются менее реалистично и в результате могут смотреться неестественно. Невозможно просчитать карты теней в реальном времени для движущихся объектов, но можно получить похожий эффект с помощью light probes (зондов освещения). Их идея в том, чтобы освещение выбиралось в стратегически важных (для освещения) точках сцены, обозначенных с помощью размещения зондов. После этого, свет в любой точке может быть аппроксимирован с помощью интерполяции между выборками, которые совершили ближайшие зонды. Интерполяция помогает избежать несоответствия освещения динамических объектов, и статичных объектов, к которым применены карты освещения, кроме того, интерполяция достаточно быстра, чтобы её можно было использовать во время игры.
К любому доступному в сцене объекту можно добавить компонент для создания групп зондов освещения - Light Probe Group (меню:
). С помощью инспектора можно добавлять новые зонды в группу. В сцене зонды отображаются как жёлтые сферы, и их можно размещать в пространстве таким же образом, как и любые другие GameObject’ы. Также, можно дублировать выбранные зонды с помощью стандартного сочетания клавиш (ctrl+d/cmd+d).Запомните, что размещать зонды следует там, где вы желаете производить выборку света или темноты. Чтобы разбиение пространства работало правильно, зонды должны образовывать объём в сцене.
Самый простой способ размещения - выставить их в виде обычной 3D сетки. Хоть этот способ эффективен и прост, обычно он негативно сказывается на потреблении памяти (в основе каждого зонда освещения лежит сферическое панорамное HDR изображение вида из текущей точки выборки). Стоит отметить, что зонды необходимы только в тех областях сцены, в которых могут перемещаться игроки, NPC или другие динамические объекты. Кроме того, не обязательно использовать большое количество зондов в областях, где освещение не меняется слишком сильно, т.к. условия освещения интерполируются в пространстве между зондами. Например, большое количество зондов не требуется ни в большой области равномерной тени, ни в ярко освещённой области вдали от зеркальных объектов. В основном зонды требуются в зонах резкого изменения условий освещения, например, на границе затенённой области, или в местах, где части окружения имеют различную окраску.
В некоторых случаях, инфраструктура игры подскажет как лучше расположить зонды. Например, в гоночной игре по треку обычно расставлены маршрутные точки для AI и других целей. Они являются хорошими кандидатами для расположения зондов и скорее всего будет не трудно расставить их программно, из editor скрипта. Аналогично можно поступить и с навигационными мешами, т.к. они обычно используются для определения областей, в которые может попасть игрок, что позволяет применить автоматизированное размещение зондов.
Здесь запечены зонды освещения на поверхностях, по которым могут передвигаться персонажи, но только в тех местах, где есть интересные для захвата изменения освещения:
На сегодняшний день, система зондов освещения не может запечь полностью плоское облако зондов. Так что, даже если ваши персонажи передвигаются только по плоскости, вам всё равно придётся хотя бы несколько зондов разместить на вышестоящем слое, чтобы образовать объёмное пространство для правильной работы интерполяции.
Включите опцию Use Light Probes компонента Mesh Renderer чтобы меш, указанный в этом компоненте, получал освещение от системы зондов.
Интерполяции зонда требуется точка в пространстве для представления положения меша, на который падает свет. По умолчанию используется центр ограничительной рамки (bounding box), но можно переопределить точку с помощью присвоения Transform’а свойству Anchor Override компонента Mesh Renderer (тогда позиция указанного Transform’а будет использоваться в качестве точки интерполяции). Это может пригодиться в случае, когда объект содержит два прилегающих друг к другу меша; свет может выглядеть неестественно в месте соединения мешей, если оба меша подсвечиваются одинаково, в соответствии с положением их ограничительных рамок. Этого можно избежать с помощью одного Transform’а (например, родительского или дочернего объекта) в качестве точки интерполяции для обоих меш рендереров.
Если в режиме Light Probes окна Scene выбрать объект использующий зонды освещения, над ним отобразится его интерполированный зонд для предварительного просмотра. Интерполированный зонд - это зонд, используемый в процессе отрисовке объекта, он соединён 4мя тонкими голубыми линиями (3мя, если находится не в объёмной области зонда) с зондами, между которыми он интерполируется:
Всё статичное освещение (включая источники света, установленные в режим лайтмаппинга “Auto”) запекается в зонды освещения, если включен режим одиночных и направленных карт освещения.
В режиме двойных карт освещения зонды будут содержать информацию об освещении в той же конфигурации, что и “Near” (ближние) карты освещения, т.е. полное освещение от неба, излучающих материалов, area источников света и “Baked Only” источников света, но только непрямое освещение от “Auto” источников света. Благодаря этому, объект может освещаться “Auto” источниками света в реальном времени и получать такие преимущества динамических объектов как динамические тени, но в то же время, получать непрямое освещение, добавляемое в сцену этими источниками света.