Reflection probes¶
Введение¶
Как указано в Spatial Material, объекты могут показывать отражённый или рассеянный свет. Зонды отражения используются в качестве источника отражённого и рассеянного света для объектов, находящихся в зоне их влияния.
Зонд такого типа захватывает окружающее пространство (как своего рода изображение на 360 градусов) и сохраняет его версии с возрастающими уровнями размытия (blur) . Это используется для имитации шероховатости материалов, а также окружающего освещения.
Хотя эти зонды являются эффективным способом хранения отражений, у них есть несколько недостатков:
Они эффективны для рендеринга, но дороги для вычислений. Это приводит к тому, что по умолчанию они захватываются только при загрузке сцены.
Они лучше всего подходят для помещений или мест прямоугольной формы, в противном случае отображаемые отражения не так точны (особенно когда шероховатость равна 0).
Настройка¶
Создайте узел ReflectionProbe и оберните его вокруг области, где вы хотите иметь отражения:

Это должно привести к немедленным местным отражениям. Если вы используете текстуру неба, отражения по умолчанию смешиваются с ней.
По умолчанию в интерьерах, отражения могут выглядеть не очень однородными. В этом случае обязательно отметьте свойство "Box Correct".

Эта настройка изменяет отражение с бесконечного скайбокса на отражение коробки размером с зонд:

Регулировка стенок коробки может помочь немного улучшить отражение, но оно всегда будет лучше смотреться в помещениях коробчатой формы.
Зонд фиксирует окружающее из центра гизмо. Если по какой-то причине форма комнаты или ее содержимое закрывают центр, его можно переместить на свободное место, передвинув ручки в центре:

По умолчанию отображение теней отключено при рендеринге зондов (только на отрисованном изображении внутри зонда, а не на реальной сцене). Это простой способ экономии производительности и памяти. Если вам нужны тени в зонде, их можно включить/выключить с помощью параметра Enable Shadow:

Наконец, имейте в виду, что вы можете не захотеть, чтобы зонд отражения рендерил некоторые объекты. Типичный сценарий - враг внутри комнаты, который будет перемещаться. Чтобы объекты не отображались в отражениях, используйте параметр Cull Mask:

Интерьер против экстерьера¶
Если вы используете зонды отражения в интерьере, рекомендуется включить свойство Interior. Это не позволит зонду отрисовывать небо, а также позволит настроить параметры окружающего освещения.

Когда для датчиков установлено значение Интерьер, для каждого датчика можно указать постоянное окружающее освещение. Просто выберите цвет и энергию.
По желанию, вы можете смешать окружающий свет с диффузным захватом зонда, настроив свойство Ambient Contribution (0.0 означает чистый окружающий цвет, а 1.0 - чистый диффузный захват).
Смешивание¶
Можно использовать несколько зондов отражения, и Godot смешает их в местах наложения с помощью интеллектуального алгоритма:

Как вы можете видеть, такое смешивание никогда не бывает идеальным (в конце концов, это отражения коробки, а не реальные отражения), но эти артефакты видны только при использовании идеально зеркальных отражений. Обычно сцены имеют нормальное отображение и различные уровни шероховатости, которые могут скрыть это.
Альтернативно, зонды отражения хорошо сочетаются с отражениями экранного пространства для решения этих проблем. Комбинируя их, локальные отражения выглядят более достоверно, а зонды используются только в качестве запасного варианта, когда информация об экранном пространстве не найдена:

Наконец, смешивание внутренних и внешних зондов - это рекомендуемый подход при создании уровней, сочетающих как внутренние, так и внешние помещения. Возле двери зонд может быть помечен как внешний (так он будет получать отражения неба), в то время как внутри он может быть внутренним.
Reflection atlas¶
В текущей реализации рендерера все зонды имеют одинаковый размер и помещаются в атлас отражений. Размер и количество зондов можно настроить в Настройки проекта -> Качество -> Отражения
Значение по умолчанию Atlas Subdiv: 8 позволяет использовать в сцене до 16 зондов отражения. Это значение необходимо увеличить, если вам нужно больше зондов отражения.
