Руководства для конкретных платформ
Android (Котлин/Java)
Android НДК (С)
Единство (Фонд АР)
Нереальный движок
Ключевой частью создания реалистичных AR-эффектов является правильное освещение. Когда у виртуального объекта отсутствует тень или он имеет блестящий материал, не отражающий окружающее пространство, пользователи могут почувствовать, что объект не совсем подходит, даже если они не могут объяснить, почему. Это связано с тем, что люди подсознательно воспринимают сигналы о том, как освещены объекты в их окружении. API оценки освещения анализирует данные изображения на предмет таких сигналов, предоставляя подробную информацию об освещении в сцене. Затем вы можете использовать эту информацию при рендеринге виртуальных объектов, чтобы осветить их в тех же условиях, что и сцена, в которой они расположены, сохраняя при этом внимание и заинтересованность пользователей.
Световые сигналы
API оценки освещения предоставляет подробные данные, которые позволяют имитировать различные сигналы освещения при рендеринге виртуальных объектов. Этими сигналами являются тени, окружающий свет, затенение, зеркальные блики и отражения.
Тени
Тени часто направлены и сообщают зрителям, откуда исходят источники света.
Окружающий свет
Окружающий свет — это общий рассеянный свет, который проникает из окружающей среды и делает все видимым.
Затенение
Затенение – это интенсивность света. Например, разные части одного и того же объекта могут иметь разные уровни затенения в одной и той же сцене, в зависимости от угла относительно зрителя и его близости к источнику света.
Зеркальные блики
Зеркальные блики — это блестящие участки поверхностей, которые напрямую отражают источник света. Подсветка объекта меняется относительно положения зрителя в сцене.
Размышления
Свет отражается от поверхностей по-разному в зависимости от того, имеет ли поверхность зеркальные (сильно отражающие) или рассеянные (неотражающие) свойства. Например, металлический шар будет очень зеркальным и будет отражать окружающую среду, а другой шар, окрашенный в матовый серый цвет, будет рассеянным. Большинство объектов реального мира обладают комбинацией этих свойств — представьте себе потертый шар для боулинга или часто используемую кредитную карту.
Светоотражающие поверхности также улавливают цвета окружающей среды. На окраску объекта может напрямую влиять окраска окружающей его среды. Например, белый шар в синей комнате приобретет голубоватый оттенок.
Экологический режим HDR
Эти режимы состоят из отдельных API, которые позволяют детально и реалистично оценивать направленное освещение, тени, блики и отражения.
Режим Environmental HDR использует машинное обучение для анализа изображений с камеры в реальном времени и синтезирования окружающего освещения для поддержки реалистичного рендеринга виртуальных объектов.
Этот режим оценки освещения обеспечивает:
Основной направленный свет . Представляет основной источник света. Можно использовать для отбрасывания теней.
Окружающие сферические гармоники . Представляет оставшуюся энергию окружающего света в сцене.
Кубическая карта HDR . Может использоваться для рендеринга отражений в блестящих металлических объектах.
Вы можете использовать эти API в разных комбинациях, но они предназначены для совместного использования для достижения наиболее реалистичного эффекта.
Основной направленный свет
API основного направленного света вычисляет направление и интенсивность основного источника света сцены. Эта информация позволяет виртуальным объектам в вашей сцене отображать разумно расположенные зеркальные блики и отбрасывать тени в направлении, соответствующем другим видимым реальным объектам.
Чтобы увидеть, как это работает, рассмотрим эти два изображения одной и той же виртуальной ракеты. На изображении слева под ракетой есть тень, но ее направление не совпадает с другими тенями в сцене. В ракете справа тень указывает в правильном направлении. Это тонкое, но важное отличие, и оно закрепляет ракету на сцене, потому что направление и интенсивность тени лучше соответствуют другим теням в сцене.
Когда основной источник света или освещенный объект находится в движении, зеркальная подсветка объекта меняет свое положение в реальном времени относительно источника света.
Направленные тени также регулируют свою длину и направление относительно положения основного источника света, как и в реальном мире. Чтобы проиллюстрировать этот эффект, рассмотрим эти два манекена: один виртуальный, а другой реальный. Манекен слева — виртуальный.
Окружающие сферические гармоники
В дополнение к световой энергии основного направленного света, ARCore обеспечивает сферические гармоники, представляющие общий окружающий свет, приходящий со всех сторон сцены. Используйте эту информацию во время рендеринга, чтобы добавлять тонкие подсказки, подчеркивающие определение виртуальных объектов.
Рассмотрим эти два изображения одной и той же модели ракеты. Ракета слева визуализируется с использованием информации об оценке освещения, обнаруженной API основного направленного света. Ракета справа визуализируется с использованием информации, полученной API-интерфейсами как света основного направления, так и окружающих сферических гармоник. Вторая ракета явно имеет большую визуальную четкость и более плавно вписывается в сцену.
Кубическая карта HDR
Используйте кубическую карту HDR для визуализации реалистичных отражений на виртуальных объектах со средней и высокой степенью блеска, таких как блестящие металлические поверхности. Кубическая карта также влияет на затенение и внешний вид объектов. Например, материал зеркального объекта, окруженного синей средой, будет отражать синие оттенки. Вычисление кубической карты HDR требует небольшого объема дополнительных вычислений ЦП.
Стоит ли вам использовать кубическую карту HDR, зависит от того, как объект отражает свое окружение. Поскольку виртуальная ракета металлическая, она имеет сильный зеркальный компонент, который напрямую отражает окружающую среду. Таким образом, он получает выгоду от кубической карты. С другой стороны, виртуальный объект с тусклым серым матовым материалом вообще не имеет зеркального компонента. Его цвет в первую очередь зависит от диффузного компонента, и кубическая карта ему не поможет.
Все три API-интерфейса Environmental HDR были использованы для рендеринга ракеты ниже. Кубическая карта HDR позволяет использовать отражающие подсказки и дополнительно выделять объект, полностью заземляя его в сцене.
Вот одна и та же модель ракеты в условиях разного освещения. Все эти сцены были визуализированы с использованием информации из трех API с применением направленных теней.
Режим внешней интенсивности
Режим Ambient Intensity определяет среднюю интенсивность пикселей и скаляры цветокоррекции для данного изображения. Это грубая настройка, предназначенная для случаев, когда точное освещение не критично, например, для объектов с запеченным освещением.
Интенсивность пикселей
Фиксирует среднюю интенсивность освещения в пикселях сцены. Вы можете применить это освещение к целому виртуальному объекту.
Цвет
Определяет баланс белого для каждого отдельного кадра. Затем вы можете откорректировать цвет виртуального объекта, чтобы он более плавно интегрировался в общую цветовую гамму сцены.
Зонды окружающей среды
Зонды окружающей среды организуют 360-градусные изображения с камер в текстуры окружающей среды, такие как кубические карты. Эти текстуры затем можно использовать для реалистичного освещения виртуальных объектов, таких как виртуальный металлический шар, который «отражает» комнату, в которой он находится.