RealityKit 2.0 Express

Технология Augmented Reality прочно вошла в нашу жизнь. AR используется повсеместно – в навигационных системах, в интерьерной и экстерьерной визуализации, в медицине, в торговле, в играх. Создать захватывающее AR-приложение в Xcode вы можете при помощи инструментария ARKit. Однако вы, как разработчики, наверняка знаете что фреймворк ARKit не отвечает за две важнейшие функции – за загрузку 3D-моделей и их рендеринг. До настоящего времени за загрузку и рендеринг 3D-моделей отвечает верный спутник ARKit – SceneKit. Но к сожалению SceneKit не полностью отвечает всем современным требованиям предъявляемым к разработке AR-приложений. Именно поэтому ему на подмогу был прислан модуль RealityKit, который, как мне кажется, призван заменить SceneKit в ближайшем будущем. Конечно, на данный момент RealityKit ещё слишком молод, и не имеет всех возможностей, накопившихся в SceneKit за восемь c лишним лет его существования. Но развитие RealityKit не стоит на месте, и каждая его последующая мажорная версия будет получать значительные API-апдейты. В чём же принципиальное отличие RealityKit от его зрелого конкурента? Во-первых, это плотная интеграция с нативным приложением для AR-прототипирования – Reality Composer. RealityKit имеет возможность работать с двумя файловыми форматами Reality Composer – .rcproject и .reality и помимо этого с нативным форматом iOS и macOS – .usdz.

Во-вторых, в RealityKit для построения в сцене динамики и анимации используется значительно меньше шаблонного кода (boilerplate code) чем у его старшего коллеги.

В-третьих, поддержка возможностей LiDAR-сканнера реализована с использованием нативного вида ARView – класса RealityKit.

В-четвёртых, у RealityKit “под капотом” находятся все востребованные в современных AR-приложениях возможности – Occlusion и Video материалы, девять типов якорей AnchorEntity, эффекты камеры Motion Blur и Grain, Raytraced-тени, пространственный звук (spatial sound) и многое другое.

Ну и в-пятых, RealityKit это прекрасный образчик для совместной работы с фреймворками SwiftUI и Combine, “заточенными” под декларативный синтаксис языка Swift.

Конечно у модуля RealityKit имеются и недостатки: например отсутствие системы частиц (Particle System), отсутствие constraints или неспособность создавать модели из вершин. Но, как нам кажется, всё это будет внедрено в ближайшей версии этого SDK.

На данный момент в США, в странах Европы, в Азии и в России наблюдается всплеск активности в AR-секторе. Если вы хотите научится разрабатывать современные AR-приложения с элементами искусственного интеллекта и машинного обучения, а затем достойно монетизировать свои знания – добро пожаловать на авторский онлайн-курс Андрея Фёдорова "RealityKit 2.0 Express".

Программа online-курса RealityKit 2.0 Express

День первый

Файлы проектов Reality Composer. Иерархическая структура данных.
Создание примитивов и текстур. Импорт моделей из Reality Composer.
Доступ к компонентам Entity и AnchorEntity. Переназначение якорей.

День второй

 
Raycasting. Настройка физики анимации в RealityKit. VideoMaterial.
Настройка световых приборов Direct, Spot и Point. Настойка теней.
Работа с 3D-текстом. Параметры шейдеров Simple и Unlit Materials.

День третий

Асинхронная загрузка моделей. Настройка пространственного звука.
Скачивание моделей с удалённых ресурсов. Работа с AR Quick Look.
AR Motion Capture. Передача скелетной анимации 3D-модели с ригом.

День четвёртый

Создание игры. Имплементация жестов, физики и OcclusionMaterial.
Использование ARSessionDelegate для обновления с частотой 60 fps.
Внедрение Coaching Overlay. Совместное использование SwiftUI и UIKit.

День пятый

Особенности работы с LiDAR-сканером. Классификация поверхностей.
Реализация принципов заложенных во фреймворки MetalKit и ModelIO.
Работа с моделью, полученной при помощи LiDAR. Импорт usd и obj.