Меня охватывает грусть, когда сталкиваюсь с тем, что документация ARKit так скупа на детали по внедрению occlusion culling, этот алгоритм жизненно необходим для эффективного рендеринга в виртуальной реальности и добавления реализма в мою AR сцену. Как мне технически корректно реализовать occlusion culling в ARKit для повышения производительности и уменьшения нагрузки на графический процессор, учитывая спецификацию Active occlusion и фичи Tracking and Scene Composition? Как правильно настроить Spatial Mapping и Depth API, чтобы объекты в моей сцене корректно скрывались за реальными препятствиями, обеспечивая кайф от погружения в AR? Понимая, что это не простая задача, я ищу технически подкованное решение, желательно с упоминанием конкретных методов API и фрагмента кода, если это возможно.
![](https://secure.gravatar.com/avatar/669f75780c0de8df09debe82d62aa397?s=30&d=https%3A%2F%2Fvr-gang.com%2Fwp-content%2Fuploads%2Fap_avatars%2F6974ce5ac660610b44d9b9fed0ff9548.jpg&r=g)
![](https://secure.gravatar.com/avatar/a930d60c9ac9e676663ff7b7027e1f4e?s=30&d=https%3A%2F%2Fvr-gang.com%2Fwp-content%2Fuploads%2Fap_avatars%2F02e74f10e0327ad868d138f2b4fdd6f0.jpg&r=g)
Опять Apple «помогает» разработчикам.
![](https://secure.gravatar.com/avatar/aa4f5f9cf475958de682e6e89184c819?s=30&d=https%3A%2F%2Fvr-gang.com%2Fwp-content%2Fuploads%2Fap_avatars%2F54229abfcfa5649e7003b83dd4755294.jpg&r=g)
Попробуйте обновить Depth API для occlusion.
![](https://secure.gravatar.com/avatar/d5ecdd90d9c4a3584fb9568e31e17757?s=30&d=https%3A%2F%2Fvr-gang.com%2Fwp-content%2Fuploads%2Fap_avatars%2F9778d5d219c5080b9a6a17bef029331c.jpg&r=g)
А где depth buffer в вашем коде?
![](https://secure.gravatar.com/avatar/0ae220fa1b27b02ff9623cd6295bfabf?s=30&d=https%3A%2F%2Fvr-gang.com%2Fwp-content%2Fuploads%2Fap_avatars%2Fe369853df766fa44e1ed0ff613f563bd.jpg&r=g)
У ARKit есть нормальная документация? Не смешите.
2 Ответы
Для реализации occlusion culling в ARKit вы можете использовать ARKit 3, который включает People Occlusion и Motion Capture. Используйте ARSession и создайте ARWorldTrackingConfiguration, затем активируйте флаг isPeopleOcclusionEnabled в iOS 13 и выше. Вы также можете работать с Depth API, чтобы получить информацию о глубине сцены и правильно скрыть виртуальные объекты позади реальных. Используя полученные данные, можно настроить rendering pipeline вашего графического движка так, чтобы объекты, не видимые из-за физических препятствий, не рендерились.
К сожалению, документация ARKit действительно может быть немного скудной, но пробуйте покопаться в Depth API, оно типа должно помочь вам получить инфо о глубине и типа сделать всё круто с occlusion. Ну и читайте форумы, там бывает полезно такое, ага.
Как насчет примеров от ARKit Community?