Датчики отражения
Как указано в Стандартный материал 3D и материал ORM 3D, объекты могут отображать отражённый и/или рассеянный свет. Зонды отражения служат источником как отражённого, так и окружающего (ambient) света для объектов в зоне их влияния. Они обеспечивают более точные отражения, чем VoxelGI и SDFGI, оставаясь ресурсоэффективными.
Поскольку зонды отражения также могут хранить окружающий свет, их можно использовать как бюджетную альтернативу VoxelGI и SDFGI, когда запечённые световые карты не подходят (например, в процедурно генерируемых уровнях).
Зонды отражения также можно использовать одновременно с отражениями в экранном пространстве для обеспечения отражений объектов вне экрана. В этом случае Godot будет смешивать отражения в экранном пространстве и отражения от зондов отражения.
См. также
Не уверены, подходит ли вам ReflectionProbe? Смотрите Какую технику глобального освещения лучше использовать? для сравнения техник глобального освещения, доступных в Godot 4.
Визуальное сравнение
Зонд отражения отключён. Небо окружения используется в качестве запасного варианта.
Зонд отражения включён.
Зонд отражения включён с одновременным использованием LightmapGI. Световая карта отображается в отражении.
Комбинируя зонды отражения с отражениями в экранном пространстве, вы можете получить лучшее из обоих миров: высококачественные отражения для общей структуры комнаты (которые остаются видны вне экрана) и отражения в реальном времени для мелких деталей.
Отражения в комнате с использованием только ReflectionProbe. Обратите внимание, как мелкие детали не имеют отражений.
Отражения в комнате с использованием только отражений в экранном пространстве. Обратите внимание, как отражения на боковых сторонах стен комнаты частично отсутствуют из-за нахождения вне экрана.
Отражения в комнате с совместным использованием ReflectionProbe и отражений в экранном пространстве. Отражения в экранном пространстве смешиваются с зондом отражения, выступая в качестве запасного варианта в ситуациях, когда зонд отражения не может отобразить отражение.
Настройка ReflectionProbe
Добавьте узел ReflectionProbe.
Настройте размеры ReflectionProbe в инспекторе, чтобы они соответствовали вашей сцене. Для получения достаточно точных отражений обычно следует иметь один узел ReflectionProbe на комнату (иногда больше для больших комнат).
Совет
Помните, что размеры ReflectionProbe не обязательно должны быть квадратными, и вы даже можете вращать узел ReflectionProbe, чтобы он соответствовал комнатам, не выровненным по сетке X/Z. Используйте это преимущество для лучшего покрытия комнат без необходимости размещения слишком большого количества узлов ReflectionProbe.
Свойства ReflectionProbe
Update Mode: Управляет обновлением зонда отражения. Once рендерит сцену только один раз при каждом перемещении ReflectionProbe. Это делает рендеринг намного быстрее по сравнению с режимом Always, который заставляет зонд перерендеривать всё вокруг каждый кадр. Оставьте это свойство на Once (по умолчанию), если вам не нужно обновлять зонд отражения каждый кадр.
Intensity: Яркость отражений и окружающего освещения. Обычно это свойство не нужно менять с значения по умолчанию
1.0, но вы можете уменьшить его, если обнаружите, что отражения выглядят слишком сильными.Max Distance: Управляет максимальным расстоянием, используемым внутренней камерой ReflectionProbe. Расстояние всегда как минимум равно Extents, но его можно увеличить, чтобы объекты, находящиеся за пределами, были видны в отражениях. Это свойство не влияет на максимальное расстояние, на котором виден сам ReflectionProbe.
Extents: Область, на которую будут влиять освещение и отражения ReflectionProbe.
Origin Offset: Начало координат для внутренней камеры, используемой для рендеринга зонда отражения. Оно всегда должно находиться в пределах Extents. При необходимости отрегулируйте его, чтобы предотвратить заслонение отражения сплошным объектом, расположенным точно в центре ReflectionProbe.
Box Projection: Управляет использованием коррекции параллакса при рендеринге зонда отражения. Это регулирует внешний вид отражения в зависимости от позиции камеры (относительно зонда отражения). Это имеет небольшую производительную стоимость, но повышение качества часто того стоит в комнатах прямоугольной формы. Обратите внимание, что этот эффект не так хорошо работает в комнатах с менее правильными формами (например, эллиптической формы).
Interior: Если включено, окружающее освещение не будет учитываться из неба окружения, и фоновое небо не будет рендериться на зонд отражения.
Enable Shadows: Управляет отрисовкой теней от источников света в реальном времени в зонде отражения. Включите это для улучшения качества отражений ценой производительности. Это следует оставить отключённым для зондов отражения в режиме Always, так как рендеринг отражений с тенями каждый кадр очень ресурсоёмок. Полностью запечённые тени не зависят от этой настройки и будут отображаться в зонде отражения в любом случае.
Cull Mask: Управляет видимостью объектов в отражении. Это можно использовать для повышения производительности, исключая мелкие объекты из отражения. Также можно использовать для предотвращения артефактов самоотражения объекта в ситуациях, когда Origin Offset невозможно использовать.
Mesh LOD Threshold: Порог автоматического уровня детализации для рендеринга мешей в отражении. Это влияет только на меши, для которых генерируются автоматические LOD. Более высокие значения могут улучшить производительность, используя менее детализированную геометрию, особенно для объектов, удалённых от начала отражения. Визуальная разница при использовании менее детализированных объектов обычно не очень заметна во время игры, особенно в грубых отражениях.
В категории Ambient есть несколько свойств для настройки окружающего освещения, отображаемого ReflectionProbe:
Mode: Если установлено Disabled, зонд не добавляет окружающий свет. Если установлено Environment, цвет окружающего света автоматически выбирается из неба окружения (если Interior отключён) и среднего цвета отражения. Если установлено Constant Color, вместо этого используется цвет, указанный в свойстве Color. Режим Constant Color можно использовать как приближение площадного освещения.
Color: Цвет, используемый когда режим окружающего света установлен в Constant Mode.
Color Energy: Множитель для пользовательского Color окружающего света. Имеет эффект только когда режим окружающего света Custom Color.
Смешивание (Blending) ReflectionProbe
Чтобы сделать переходы между источниками отражений более плавными, Godot поддерживает автоматическое смешивание зондов:
До 4 ReflectionProbes могут смешиваться вместе в заданном месте. ReflectionProbe также будет плавно возвращаться к освещению от окружения, если он не пересекается с другим зондом.
SDFGI и VoxelGI будут плавно смешиваться с ReflectionProbes, если они используются. Это позволяет стратегически размещать ReflectionProbes для получения более точных (или полностью в реальном времени) отражений там, где это необходимо, сохраняя при этом грубые отражения в зоне влияния VoxelGI или SDFGI.
Чтобы несколько ReflectionProbes смешивались друг с другом, необходимо, чтобы часть каждого ReflectionProbe перекрывала область другого. Размеры должны перекрываться как можно меньше с другими зондами отражения для повышения производительности рендеринга (обычно на несколько единиц в 3D-пространстве).
Ограничения
При использовании рендерера Forward+ Godot использует кластеризованный подход для рендеринга зондов отражения. Можно добавить столько зондов отражения, сколько нужно (пока позволяет производительность). Однако по умолчанию существует ограничение в 512 кластеризованных элементов, которые могут присутствовать в текущем виде камеры. Кластеризованный элемент — это всенаправленный свет, прожектор, декаль или зонд отражения. Этот лимит можно увеличить, настроив Max Clustered Elements в Настройки проекта > Рендеринг > Лимиты > Cluster Builder.
При использовании мобильного рендерера только 8 зондов отражения могут быть применены к каждому отдельному ресурсу Mesh. Если на один меш влияет больше зондов отражения, не все они будут отображены на меше.
Аналогично, при использовании рендерера совместимости, до 2 зондов отражения могут быть применены на меш. Если на один меш влияет более 2 зондов отражения, дополнительные зонды не будут отображаться.