Руководства для конкретных платформ
Android (Kotlin/Java)
Android NDK (C)
Unity (AR Foundation)
Unreal Engine

Ключевым моментом в создании реалистичных AR-приложений является правильная настройка освещения. Когда у виртуального объекта отсутствует тень или его блестящий материал не отражает окружающее пространство, пользователи могут почувствовать, что объект не совсем подходит, даже если не могут объяснить почему. Это происходит потому, что люди подсознательно воспринимают сигналы о том, как объекты освещены в их окружении. API оценки освещения анализирует предоставленные изображения на наличие таких сигналов, предоставляя подробную информацию об освещении в сцене. Затем вы можете использовать эту информацию при рендеринге виртуальных объектов, чтобы осветить их в тех же условиях, что и сцена, в которой они находятся, тем самым сохраняя ощущение реальности и вовлеченности пользователей.
Световые сигналы
API оценки освещения предоставляет подробные данные, позволяющие имитировать различные световые эффекты при рендеринге виртуальных объектов. К таким эффектам относятся тени, окружающий свет, затенение, блики и отражения.
Тени
Тени часто имеют направленный характер и указывают зрителям, откуда исходят источники света.
Рассеянный свет
Рассеянный свет — это общий рассеянный свет, поступающий извне, благодаря которому всё становится видимым.
Затенение
Затенение — это интенсивность света. Например, разные части одного и того же объекта могут иметь разный уровень затенения в одной и той же сцене в зависимости от угла наклона относительно зрителя и близости к источнику света.
Зеркальные блики
Блики — это блестящие участки поверхности, которые отражают источник света напрямую. Блики на объекте меняются в зависимости от положения наблюдателя в сцене.
Размышления
Свет отражается от поверхностей по-разному в зависимости от того, обладает ли поверхность зеркальными (сильно отражающими) или диффузными (не отражающими) свойствами. Например, металлический шар будет сильно зеркальным и будет отражать окружающую среду, в то время как другой шар, окрашенный в тускло-серый матовый цвет, будет диффузным. Большинство реальных объектов обладают сочетанием этих свойств — вспомните потертый шар для боулинга или сильно изношенную кредитную карту.
Отражающие поверхности также поглощают цвета окружающей среды. Цвет объекта может напрямую зависеть от цвета окружающей среды. Например, белый шар в синей комнате приобретет голубоватый оттенок.
Экологический режим HDR
Эти режимы состоят из отдельных API, которые позволяют детально и реалистично оценивать освещение для направленного света, теней, бликов и отражений.
Режим Environmental HDR использует машинное обучение для анализа изображений с камеры в реальном времени и синтеза окружающего освещения для обеспечения реалистичного отображения виртуальных объектов.
Этот режим оценки освещенности предоставляет следующие возможности:
Основной направленный источник света . Представляет собой главный источник света. Может использоваться для отбрасывания теней.
Сферические гармоники окружающего освещения . Представляют собой оставшуюся энергию окружающего света в сцене.
HDR-кубическая карта . Может использоваться для отображения отражений на блестящих металлических объектах.
Эти API можно использовать в различных комбинациях, но для достижения наиболее реалистичного эффекта они предназначены для совместного использования.
Основной направленный свет
Основной API направленного освещения вычисляет направление и интенсивность главного источника света в сцене. Эта информация позволяет виртуальным объектам в вашей сцене отображать правильно расположенные блики и отбрасывать тени в направлении, соответствующем направлению других видимых реальных объектов.
Чтобы понять, как это работает, рассмотрим два изображения одной и той же виртуальной ракеты. На изображении слева под ракетой находится тень, но её направление не совпадает с направлением других теней на сцене. На изображении справа тень направлена в правильном направлении. Это тонкое, но важное различие, которое позволяет ракете оставаться на месте в сцене, поскольку направление и интенсивность тени лучше соответствуют другим теням на сцене.


Когда основной источник света или освещенный объект находится в движении, блик на объекте в реальном времени корректирует свое положение относительно источника света.
Направленные тени также изменяют свою длину и направление относительно положения основного источника света, как и в реальном мире. Чтобы проиллюстрировать этот эффект, рассмотрим два манекена: один виртуальный, а другой реальный. Манекен слева — виртуальный.

Сферические гармоники окружающей среды
В дополнение к световой энергии основного направленного источника света, ARCore предоставляет сферические гармоники, представляющие собой общее окружающее освещение, поступающее со всех сторон сцены. Используйте эту информацию во время рендеринга, чтобы добавить тонкие нюансы, подчеркивающие детализацию виртуальных объектов.
Рассмотрим два изображения одной и той же модели ракеты. Ракета слева отрисована с использованием информации об оценке освещения, полученной с помощью основного API направленного света. Ракета справа отрисована с использованием информации, полученной как с помощью основного API направленного света, так и с помощью API сферических гармоник окружающего освещения. Вторая ракета явно имеет более четкую детализацию и более органично вписывается в сцену.


HDR кубическая карта
Используйте HDR-кубическую карту для рендеринга реалистичных отражений на виртуальных объектах со средней и высокой степенью глянца, таких как блестящие металлические поверхности. Кубическая карта также влияет на затенение и внешний вид объектов. Например, материал зеркального объекта, окруженного синим окружением, будет отражать синие оттенки. Вычисление HDR-кубической карты требует небольшого дополнительного объема вычислительных ресурсов процессора.
Необходимость использования HDR-кубической карты зависит от того, как объект отражает окружающую среду. Поскольку виртуальная ракета имеет металлический корпус, у неё сильная зеркальная составляющая, которая напрямую отражает окружающую среду. Таким образом, кубическая карта ей подходит. С другой стороны, виртуальный объект с матовым серым материалом вообще не имеет зеркальной составляющей. Его цвет в основном зависит от диффузной составляющей, и кубическая карта ему не поможет.
Для рендеринга ракеты, изображенной ниже, использовались все три API для работы с HDR-эффектом в окружающей среде. Кубическая карта HDR обеспечивает отражающие элементы и дополнительное выделение, благодаря чему объект полностью вписывается в сцену.

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



Режим интенсивности окружающего освещения
Режим «Интенсивность окружающего освещения» определяет среднюю интенсивность пикселей и скалярные значения цветокоррекции для данного изображения. Это грубая настройка, предназначенная для случаев, когда точное освещение не имеет решающего значения, например, для объектов с уже встроенным освещением.
Интенсивность пикселя
Определяет среднюю интенсивность пикселей освещения в сцене. Это освещение можно применить ко всему виртуальному объекту.
Цвет
Определяет баланс белого для каждого отдельного кадра. Затем можно выполнить цветокоррекцию виртуального объекта, чтобы он более органично вписывался в общую цветовую гамму сцены.
Экологические зонды
Зонды окружения организуют 360-градусные изображения с камер в текстуры окружения, такие как кубические карты. Затем эти текстуры можно использовать для реалистичного освещения виртуальных объектов, например, виртуального металлического шара, который «отражает» комнату, в которой он находится.