Динамическая окклюзия в Quest 3 сегодня работает лишь в нескольких приложениях, но теперь, с релизом Meta XR Core SDK v67, она более качественная, требует меньше ресурсов и проще в реализации. Эти улучшения могут серьёзно усилить интерес разработчиков к технологии и количество приложений с ней в Horizon Store.
Почти все улучшения 67 версии XR Core SDK, не считая работы над ошибками, связаны с API Depth для расчёта удалённости объектов:
- Поддержка Depth теперь доступна напрямую в ядре для URP и BiRP
- EnvironmentDepthManager.cs теперь даёт API для управления режимами выбора текстур и окклюзии по данным о дальности
- Оптимизация API Depth улучшила качество изображения благодаря значительному сокращению потребления ресурсов центрального (на 50%) и графического (на 80 %) процессоров
- Поддержка шейдерграфа для окклюзий в URP
- Поддержка инструмента настройки проекта, который поможет быстрее интегрировать эту функцию
Окклюзия — это способность виртуальных объектов появляться за реальными, что имеет большое значение для реализма цифровых инъекций в реальность. Статичная окклюзия предназначена для предварительно оцифрованных сцен без динамики. Динамическая предполагает, что сцена может меняться, а объекты — двигаться.
Quest 3 выпустили с поддержкой только статической окклюзии. Затем динамическую окклюзию добавили в виде «экспериментальной» функции для разработчиков, то есть её нельзя было использовать в продуктах, продаваемых в магазине приложений. В декабре 2023 года Meta сняла ограничение.
Разработчики реализуют динамическую окклюзию с помощью прикладного интерфейса программирования Depth, который передаёт грубую карту глубины для каждого кадра с камер Quest 3. Но интеграция сложна и требует модифицикации шейдеров для всех виртуальных объектов, которые нужно перекрывать, а это далеко от идеального решения в один клик. Немногие приложения смешанной реальности на Quest 3 могут похвастаться настолько заинтересованными разработчиками.
Meta хотела опустить порог входа, заодно повысив качество карты глубины, которое съедает детали кадра, оставляя зазоры по краям объектов и пустые области между пальцами человека.
Новая версия инструментария XR Core SDK, похоже, решила часть проблем. Вместе с сокращением аппетита по вычислительным ресурсам она упрощает добавление окклюзии в шейдеры из Unity Shader Graph и реорганизует код API Depth, чтобы с ним было проще работать.
Важным моментом является то, что Depth теперь может исключить отслеживаемые руки из карты глубины, чтобы замаскировать их с помощью сетки трекинга рук. Разработчики давно используют сетку для окклюзии рук даже на Quest Pro, а в SDK v67 это будет работать с окклюзией всего остального. Небольшой проблемой остаётся искажение на запястье, где система переходит к окклюзии на базе глубинной карты.
Для сравнения, Apple Vision Pro умеет делать динамическую окклюзию только на кистях и ладонях, потому что маскирует их так же, как Zoom, без реальных данных об удалённости. Это даёт более высокое визуальное качество, но объекты в руках отрабатываются неправильно, а в виаре оказываются невидимыми.
Каждый подход выявляет компромиссы, но синтез технологий в Quest 3 вместе с оптимизацией способен ввести окклюзию в массовую разработку, в отличие от любых решений в очках за тысячи долларов.
*В России признана экстремистской
Не пропускайте важнейшие новости о дополненной и виртуальной реальности — подписывайтесь на Голографику в Telegram, ВК и Twitter! Поддержите проект на Boosty.
Далее: Эндрю Босворт: Meta* консервативна по сквозному видео для разработчиков, но ждёт удобного момента