Дополненная реальность (англ. Augmented Reality, AR)) прошла долгий путь от концепции научной фантастики до чего-то более реалистичного. В последнее время стоимость AR-разработки резко снизилась, и сегодня она доступна даже на обычном смартфоне.
И Apple, и Google вкладывают внушительные средства в развитие дополненной реальности, о чём свидетельствует разработка ARkit (от Apple) и ARCore (от Google). Эти новаторские технологии позволили работать с AR обычным разработчикам, что было совершенно немыслимо несколько лет назад.
Согласно этой статье на HackerNoon, к 2025 году объём дополненной и виртуальной реальности в индустрии здравоохранения составит около 5 миллиардов долларов. Кроме того, мощный скачок в использовании AR-технологий произойдёт в индустрии туризма, поскольку 84 % пользователей во всем мире будут заинтересованы в использовании AR во время путешествий.
Что это значит для вас как разработчика?
Когда AR обещает превратить мир вокруг нас в научно-фантастический фильм, для нас, разработчиков, это означает рост новой технической сферы с новыми возможностями трудоустройства и солидными зарплатами. Итак, сегодня мы погрузимся в мир хайпа дополненной реальности и выясним, что там происходит на самом деле и как можно начать AR-разработку.
Занятие 1. Что такое ARCore
Введение в ARCore
Всем привет! Меня зовут Осман, и в этой статье я постараюсь ознакомить вас с крутой технологией дополненной реальности от Google — ARCore. Сначала мы пробежимся по основным терминам и сформируем общее представление о том, как это работает, а затем разберем действия, необходимые для подготовки проекта на Android к использованию технологии. Приятного чтения! 🙂
ARCore — платформа от Google для дополненной реальности. Она предоставляет API для Android, iOS и Web.
ARCore решает три основные задачи:
- Понимание окружающей среды (определение размеров, положения поверхностей и расстояние до них);
- Отслеживание движения телефона относительного окружающего мира;
- Оценка освещенности окружающей среды.
ARCore поддерживает Android устройства от версии 7.0 и выше (minSdkVersion >= 24). Помимо этого использование технологии предъявляет следующие требования:
- Устройство должно быть из списка поддерживаемых ;
- Предварительная установка Google Play Services for AR;
- Доступ к камере;
- Приложение, использующее ARCore.
Как происходит отслеживание движения?
Когда пользователь перемещает телефон, ARCore использует процесс, называемый одновременной локализацией и построением карты (SLAM). То есть при помощи камеры устройства ARCore обнаруживает так называемые » характерные точки » и использует их совместно с датчиками устройства для оценки изменения местоположения. Это сопровождается с отображением 3D-конструкций дополненной реальности.
Отслеживание 3D-объекта дополненной реальности при перемещении телефона.
Поиск характерных точек производится на геометрических поверхностях, которые доступны приложению через камеру устройства. То есть ARCore по ряду признаков определяет, что геометрическая фигура является вертикальной или горизонтальной, после чего на ней с учетом угла наклона может расположиться элемент дополненной реальности. Натуральность объектам дополненной реальности придает глубина изображения и оценка света окружающей среды.
Introducing ARCore
Передаваемый с камеры видеопоток изображает множество характерных точек, которые формируют отслеживаемую поверхность.
Для размещения виртуального объекта ARCore определяет якорь , который является отслеживаемой поверхностью . Этими поверхностями являются плоскости и точки особого типа, с помощью которых пользователь может привязать виртуальные объекты к реальным отслеживаемым объектам. Установленная связь обеспечивает корректное отображение 3D-конструкции при перемещении устройства. К примеру, если вы поставите виртуальную кружку на стол, то при перемещении телефона она будет отображаться таким образом, будто на ее месте стоит реальная кружка.
Подробней о якорях.
Якоря позволяют объектам дополненной реальности оставаться в одном положении при перемещении камеры, что создает эффект реального присутствия 3D-объекта. Для этого ARCore необходимо:
- Определить координатное пространство, в котором расположены объекты;
- Обновлять положение объекта в каждом кадре при изменении положения камеры;
- Предоставить положение и ориентацию виртуального объекта в пространстве.
Так как якорь является отслеживаемой поверхностью, то на нем можно расположить несколько виртуальных объектов. Желательно при имеющейся возможности располагать объекты на одном якоре, чтобы снизить нагрузку на ЦП. При расположении на одном якоре нескольких виртуальных объектов, между ними должно сформироваться одно или несколько пространственных отношений:
- Положение объектов относительно друг друга;
- Отношение виртуальных объектов с отслеживаемым объектом (якорем);
- Положение относительно окружающего пространства.
Источник: dzen.ru
Overview of ARCore and supported development environments
ARCore is Google’s platform for building augmented reality experiences. Using different APIs, ARCore enables your phone to sense its environment, understand the world and interact with information. Some of the APIs are available across Android and iOS to enable shared AR experiences.
ARCore uses three key capabilities to integrate virtual content with the real world as seen through your phone’s camera:
- Motion tracking allows the phone to understand and track its position relative to the world.
- Environmental understanding allows the phone to detect the size and location of all type of surfaces: horizontal, vertical and angled surfaces like the ground, a coffee table or walls.
- Light estimation allows the phone to estimate the environment’s current lighting conditions.
Supported devices
ARCore is designed to work on a wide variety of qualified Android phones running Android 7.0 (Nougat) and later. A full list of all supported devices is available here.
How does ARCore work?
Fundamentally, ARCore is doing two things: tracking the position of the mobile device as it moves, and building its own understanding of the real world.
ARCore’s motion tracking technology uses the phone’s camera to identify interesting points, called features, and tracks how those points move over time. With a combination of the movement of these points and readings from the phone’s inertial sensors, ARCore determines both the position and orientation of the phone as it moves through space.
In addition to identifying key points, ARCore can detect flat surfaces, like a table or the floor, and can also estimate the average lighting in the area around it. These capabilities combine to enable ARCore to build its own understanding of the world around it.
ARCore’s understanding of the real world lets you place objects, annotations, or other information in a way that integrates seamlessly with the real world. You can place a napping kitten on the corner of your coffee table, or annotate a painting with biographical information about the artist. Motion tracking means that you can move around and view these objects from any angle, and even if you turn around and leave the room, when you come back, the kitten or annotation will be right where you left it.
For a more detailed breakdown of how ARCore works, check out fundamental concepts.
ARCore provides SDKs for many of the most popular development environments. These SDKs provide native APIs for all of the essential AR features like motion tracking, environmental understanding, and light estimation. With these capabilities you can build entirely new AR experiences or enhance existing apps with AR features.
Send feedback
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2022-09-15 UTC.
Источник: developers.google.com