Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

Датчики отражения

Компьютерные фильмы и анимация обычно содержат очень реалистичные отражения, которые важны для создания ощущения «связанности» между объектами в сценеСцена содержит окружение и меню вашей игры. Думайте о каждом уникальном файле сцены как об уникальном уровне. В каждой сцене вы размещаете свое окружение, препятствия и декорации, по сути проектируя и создавая свою игру по частям. Подробнее
См. в Словарь
. Однако точность этих отражений требует больших затрат процессорного времени, и, хотя это не проблема для фильмов, это сильно ограничивает использование отражающих объектов в играх в реальном времени.

Традиционно в играх используется метод под названием отображение отражений для имитации отражений от объектов при сохранении накладных расходов на обработку на приемлемом уровне. Этот метод предполагает, что все отражающие объекты в сцене могут «видеть» (и, следовательно, отражать) одно и то же окружение. Это хорошо работает для главного героя игры (скажем, блестящей машины), если он находится в открытом космосе, но неубедительно, когда персонаж переходит в другое окружение; выглядит странно, если машина въезжает в туннель, а в ее окнах все еще зримо отражается небо.

В Unity улучшено базовое отображение отражений за счет использования Reflection Probesкомпонента рендеринга, который захватывает сферическое представление своего окружения в все направления, скорее как фотоаппарат. Захваченное изображение затем сохраняется как кубическая карта, которую можно использовать для объектов с отражающими материалами. Подробнее
См. в Словарь
, которые позволяют создавать образцы визуальной среды в стратегически важных точках сцена. Как правило, вы должны размещать их в каждой точке, где внешний вид отражающего объекта может заметно измениться (например, туннели, области возле зданий и места, где меняется цвет земли). Когда отражающий объект проходит рядом с датчиком, отражение, снятое датчиком, может быть использовано для карты отражения объекта. Кроме того, когда рядом находятся несколько зондов, Unity может выполнять интерполяцию между ними, чтобы учесть постепенные изменения в отражениях. Таким образом, использование датчиков отражения может создавать вполне убедительные отражения с приемлемыми затратами на обработку.

Как работают датчики отражения

Визуальная среда для точки сцены может быть представлена ​​кубической картойНабор из шести квадратных текстур, которые могут представлять отражения в окружающей среде или скайбокс, нарисованный позади вашей геометрии. Шесть квадратов образуют грани воображаемого куба, окружающего объект; каждая грань представляет вид по направлениям мировых осей (вверх, вниз, влево, вправо, вперед и назад). Подробнее
См. в Словарь
. Концептуально это похоже на коробку с плоскими изображениями вида с шести направлений (вверх, вниз, влево, вправо, вперед и назад), нанесенными на ее внутренние поверхности.

Внутренние поверхности кубической карты скайбокса (передняя грань удалена)
Внутренние поверхности кубической карты скайбокса (передняя грань удалена)

Чтобы объект отображал отражения, его шейдерПрограмма, работающая на графическом процессоре. Подробнее
See in Словарь
должен иметь доступ к изображениям, представляющим кубическую карту. Каждая точка поверхности объекта может «видеть» небольшую область кубической карты в направлении, обращенном к поверхности (т. е. в направлении вектора нормали к поверхности). В этот момент шейдер использует цвет кубической карты для вычисления того, какого цвета должна быть поверхность объекта; зеркальный материал может точно отражать цвет, в то время как блестящая машина может выцветать и слегка подкрашивать его.

Как упоминалось выше, традиционное картографирование отражений использует только одну кубическую карту для представления окружения всей сцены. Кубическую карту может нарисовать художник или получить, сделав шесть «моментальных снимков» из точки сцены, по одному снимку для каждой грани куба. Зонды отражения улучшают это, позволяя вам настроить множество предопределенных точек в сцене, где можно делать снимки кубической карты. Таким образом, вы можете записать окружающий вид в любой точке сцены, где отражения заметно различаются.

Помимо точки обзора зонд также имеет зону воздействия, определяемую невидимой рамкой на сцене. Отражающий объект, который проходит в пределах зоны датчика, имеет свою кубическую карту отражения, временно предоставленную этим датчиком. Когда объект перемещается из одной зоны в другую, кубическая карта изменяется соответственно.

Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
Руководство Unity 2021.3