AR-движимый 3D рендеринг
Разработка AR-приложений требует решения фундаментальной проблемы — рендеринга AR-контента. В этой статье в качестве примера рассмотрим отслеживание плоских изображений, чтобы описать основные модули, процессы и реализацию рендеринга AR-приложения.
Типичный процесс AR-приложения
Типичное AR-приложение обычно включает распознавание определенного изображения, объекта или сцены из кадров камеры, отслеживание их положения и ориентации, а также рендеринг и отображение виртуального контента (3D-модели) в соответствии с этим положением и ориентацией.
![]()
Например, на рисунке выше показано AR-приложение с отслеживанием плоского изображения
Ниже представлена схема процесса приложения.
flowchart TD
CameraDevice[Camera Device]
Tracker[Tracker]
Renderer[Renderer]
CameraDevice -->|Image Frame| Tracker
Tracker -->|Image Frame + Tracked Pose| Renderer
В процессе задействованы следующие модули.
| Модуль | Назначение |
|---|---|
| Физическая камера | Предоставляет последовательность входных кадров изображения. Кадр изображения включает само изображение, временную метку его создания, а иногда также положение и ориентацию камеры в пространстве |
| Трекер | Вычисляет положение и ориентацию отслеживаемой цели из кадра изображения. В зависимости от цели отслеживания существуют различные трекеры, например, трекеры плоских изображений и трекеры 3D-объектов |
| Рендерер | Используется для рендеринга изображения с камеры и соответствующей 3D-модели отслеживаемого объекта на экран. На некоторых AR-очках кадр с камеры может не рендериться, отображается только 3D-модель |
Рендеринг на мобильных устройствах
Рендеринг на мобильных устройствах разделяется на две части: рендеринг изображения с камеры и рендеринг виртуальных объектов.
Рендеринг изображения с камеры

При рендеринге изображения с камеры следует учитывать некоторые параметры.
Режим масштабирования
Обычно требуется заполнить кадром с камеры весь экран или окно. В этом случае возникает проблема несоответствия соотношения сторон кадра камеры и экрана/окна.
Предположим, мы требуем выравнивания центра кадра камеры по центру экрана/окна с сохранением соотношения сторон. Тогда существуют два распространенных режима масштабирования: пропорциональное масштабирование и пропорциональное заполнение.
Режим масштабирования Эффект Пропорциональное масштабирование Отображает все содержимое на экране, но оставляет черные полосы по бокам или сверху/снизу Пропорциональное заполнение Не имеет черных полос, но обрезает часть изображения по бокам или сверху/снизу Поворот изображения камеры
На мобильных устройствах изображение, записанное физической камерой, обычно фиксировано относительно корпуса и не меняется с изменением ориентации экрана. Однако изменение ориентации корпуса устройства влияет на наше определение направлений (верх/низ, лево/право) на изображении. При рендеринге текущая ориентация экрана также влияет на направление отображаемого изображения.
Обычно при рендеринге необходимо определить угол поворота изображения камеры относительно ориентации экрана.
Отражение изображения камеры
В некоторых случаях используется фронтальная камера. Тогда обычно требуется отразить изображение по горизонтали, чтобы оно выглядело как в зеркале.
Рендеринг виртуальных объектов

Для рендеринга виртуальных объектов на мобильном устройстве необходимо совместить их с изображением камеры. Это требует размещения камеры рендеринга и объектов в виртуальном пространстве, полностью соответствующем реальному, и использования того же угла обзора (FOV) и соотношения сторон, что и у физической камеры. Перспективное преобразование (проекция), применяемое к изображению камеры и виртуальным объектам, должно быть идентичным. Разница лишь в том, что преобразование для изображения камеры в основном происходит в самой физической камере, а для виртуальных объектов — это полностью вычислительный процесс.
Рендеринг на гарнитурах
Рендеринг на гарнитурах (head-mounted displays, HMD) отличается от мобильного и требует разделения на два случая.
VST (Video See-Through)
Видеопрозрачность (Video See-Through) означает технологию AR, при которой гарнитура захватывает изображение через физическую камеру, а затем отображает это изображение камеры вместе с виртуальным контентом на своем экране. Типичный пример — Vision Pro. Обычно матрицы перспективной проекции для изображения камеры и виртуального контента задаются SDK гарнитуры. Внешнему коду нужно только задать положение и ориентацию виртуального контента. Физическая камера, используемая для отслеживания, и камера, изображение которой рендерится на экране, могут находиться в разных позициях; при рендеринге выполняется преобразование координат.
OST (Optical See-Through)
Оптическая прозрачность (Optical See-Through) означает технологию AR, при которой экран гарнитуры прозрачен, и на нем отображается только виртуальный контент. Типичный пример — HoloLens. Обычно матрица перспективной проекции для виртуального контента задается SDK гарнитуры. Внешнему коду нужно только задать положение и ориентацию виртуального контента. Физическая камера, используемая для отслеживания, и виртуальная камера, через которую рендерится контент, могут находиться в разных позициях; при рендеринге выполняется преобразование координат.
Платформенные руководства
AR-движимый 3D рендеринг тесно связан с платформой. Для разработки обратитесь к следующим руководствам в зависимости от вашей целевой платформы: