Прежде чем погрузиться в ARCore, полезно понять несколько фундаментальных концепций. Вместе эти концепции иллюстрируют, как ARCore обеспечивает возможности, благодаря которым виртуальный контент может выглядеть как лежащий на реальных поверхностях или прикрепленный к реальным местам мира.
Отслеживание движения
Когда ваш телефон перемещается по миру, ARCore использует процесс, называемый одновременной локализацией и картографированием , или SLAM, чтобы понять, где находится телефон относительно окружающего мира. ARCore обнаруживает визуально различимые особенности на захваченном изображении камеры, называемые характерными точками , и использует эти точки для расчета изменения местоположения. Визуальная информация объединяется с инерционными измерениями IMU устройства для оценки положения (положения и ориентации) камеры относительно мира с течением времени.
Совмещая позу виртуальной камеры, которая отображает ваш 3D-контент, с позицией камеры устройства, предоставленной ARCore, разработчики могут отображать виртуальный контент с правильной точки зрения. Отрисованное виртуальное изображение можно наложить поверх изображения, полученного с камеры устройства, создавая впечатление, будто виртуальный контент является частью реального мира.
Экологическое понимание
ARCore постоянно совершенствует свое понимание окружающей среды реального мира, обнаруживая характерные точки и плоскости.
ARCore ищет кластеры характерных точек, которые кажутся лежащими на обычных горизонтальных или вертикальных поверхностях, таких как столы или стены, и делает эти поверхности доступными для вашего приложения в виде геометрических плоскостей . ARCore также может определять границу каждой геометрической плоскости и предоставлять эту информацию вашему приложению. Вы можете использовать эту информацию для размещения виртуальных объектов на плоских поверхностях.
Поскольку ARCore использует характерные точки для обнаружения плоскостей, плоские поверхности без текстуры, такие как белая стена, могут быть обнаружены неправильно.
Глубина понимания
ARCore может создавать карты глубины, изображения, содержащие данные о расстоянии между поверхностями от заданной точки, используя основную RGB-камеру поддерживаемого устройства . Вы можете использовать информацию, предоставляемую картой глубины, чтобы обеспечить захватывающий и реалистичный пользовательский опыт, например точное столкновение виртуальных объектов с наблюдаемыми поверхностями или их появление перед объектами реального мира или позади них.
Оценка освещенности
ARCore может обнаруживать информацию об освещении окружающей среды и предоставлять вам среднюю интенсивность и цветовую коррекцию данного изображения с камеры. Эта информация позволяет вам освещать ваши виртуальные объекты в тех же условиях, что и окружающая их среда, увеличивая ощущение реализма.
Взаимодействие с пользователем
ARCore использует тестирование попадания, чтобы получить координату (x,y), соответствующую экрану телефона (обеспечиваемую касанием или любым другим взаимодействием, которое вы хотите, чтобы ваше приложение поддерживало), и проецирует луч в представление камеры о мире, возвращая любые геометрические плоскости. или характерные точки, которые пересекает луч, а также положение этого пересечения в мировом пространстве. Это позволяет пользователям выбирать объекты в окружающей среде или иным образом взаимодействовать с ними.
Ориентированные точки
Ориентированные точки позволяют размещать виртуальные объекты на наклонных поверхностях. Когда вы выполняете проверку попадания, которая возвращает характерную точку, ARCore будет просматривать близлежащие характерные точки и использовать их, чтобы попытаться оценить угол поверхности в данной характерной точке. Затем ARCore вернет позу, учитывающую этот угол.
Поскольку ARCore использует кластеры характерных точек для определения угла поверхности, поверхности без текстуры, такие как белая стена, могут быть обнаружены неправильно.
Якоря и отслеживаемые объекты
Позы могут меняться по мере того, как ARCore улучшает понимание своей позиции и окружающей среды. Если вы хотите разместить виртуальный объект, вам необходимо определить привязку , чтобы ARCore отслеживал положение объекта с течением времени. Часто вы создаете привязку на основе позы, возвращаемой тестом на попадание, как описано в разделе «Взаимодействие с пользователем» .
Тот факт, что позы могут меняться, означает, что ARCore может со временем обновлять положение объектов окружающей среды, таких как геометрические плоскости и характерные точки. Плоскости и точки — это особый тип объектов, называемый отслеживаемым . Как следует из названия, это объекты, которые ARCore будет отслеживать с течением времени. Вы можете привязать виртуальные объекты к конкретным отслеживаемым объектам, чтобы гарантировать, что связь между вашим виртуальным объектом и отслеживаемым объектом останется стабильной даже при перемещении устройства. Это означает, что если вы поместите виртуальную фигурку Android на свой стол, а ARCore позже скорректирует положение геометрической плоскости, связанной со столом, фигурка Android все равно будет оставаться на вершине стола.
Дополнительную информацию см. в разделе Работа с привязками.
Дополненные изображения
Дополненные изображения — это функция, которая позволяет создавать приложения AR, которые могут реагировать на определенные 2D-изображения, такие как упаковка продуктов или постеры фильмов. Пользователи могут активировать AR-опыт, когда наводят камеру своего телефона на определенные изображения — например, они могут направить камеру своего телефона на постер фильма, и персонаж выскочит и разыграет сцену.
ARCore также отслеживает движущиеся изображения, такие как, например, рекламный щит на борту движущегося автобуса.
Изображения можно компилировать в автономном режиме для создания базы данных изображений, либо отдельные изображения можно добавлять в режиме реального времени с устройства. После регистрации ARCore обнаружит эти изображения, границы изображений и вернет соответствующую позу.
Совместное использование
API ARCore Cloud Anchor позволяет создавать приложения для совместной или многопользовательской игры для устройств Android и iOS.
При использовании облачных привязок одно устройство отправляет привязку и близлежащие характерные точки в облако для размещения. Этими привязками можно поделиться с другими пользователями на устройствах Android или iOS в той же среде. Это позволяет приложениям отображать одни и те же 3D-объекты, прикрепленные к этим привязкам, позволяя пользователям одновременно получать одинаковые возможности AR.
Узнать больше
Начните применять эти концепции на практике, создавая возможности дополненной реальности на платформе по вашему выбору.