Meta* выпустила API Depth для работы с данными об удалённости объектов. Он имеет статус экспериментальной функции, но уже позволяет тестировать динамическую окклюзию в смешанной реальности. Это значит, что в ближайшем будущем в приложениях для Quest реальные и виртуальные объекты смогут естественным образом заслонять друг друга, повышая реалистичность иммерсивного опыта.
Отсутствие динамической окклюзии в смешанной реальности является большим недостатком. Её реализация требует высокоточного оборудования и и новых программных методов — трудности на этом поприще понятны. Но острая необходимость функции продиктована тем, насколько странно приложения выглядят сейчас: графика всегда отображается перед движущимися объектами, такими как ваши руки и другие люди, даже если находится дальше. Это выглядит неестественно и разрушает погружение в контент.
Разработчики уже могут использовать динамическую окклюзию для рук с помощью отслеживания рук, но делают это немногие, потому что сетка обрезается на запястье, и остальная часть руки остаётся без эффекта.
Новый API Depth предоставляет разработчикам покадровую карту глубины, созданную очками с их точки зрения. Её можно использовать для реализации окклюзии как с движущимися объектами, так и с мелкими деталями статических объектов, которые могут остаться незамеченными Сеткой сцены (Scene Mesh).
Динамическая окклюзия должна сделать смешанную реальность в Quest 3 более естественной. Но разрешение измерения глубины в очках очень низкое (несмотря на новизну, мы говорим об устройстве за $500), поэтому они не улавливают такие детали, как пространство между пальцами, и вы увидите пустоту по краям объектов.
Карту глубины также рекомендуется использовать только до 4 метров, после чего «точность значительно падает», поэтому можно дополнять софт статической окклюзией через Scene Mesh.
Разработчики могут реализовать окклюзию двумя способами. Первый почти не требует вычислительных ресурсов, но даёт неровные края, а второй затратен по части графического ускорителя, но имеет лучший результат. Глядя на примеры от Meta, трудно представить, что кто-то выберет первый.
Однако в обоих случаях окклюзия требует использования шейдеров окклюзии от Meta или её специальной реализации в собственноручно написанных шейдерах. Это далеко от решения проблемы по щелчку мыши, разработчикам придётся приложить дополнительные усилия для поддержки функции.
Помимо окклюзии, разработчики также могут использовать Depth для реализации визуальных эффектов на основе глубины, таких как туман.
Для использования Depth API в настоящее время требуется включить экспериментальные функции на гарнитуре Quest 3, выполнив команду ADB:
adb shell setprop
debug.oculus.experimentalEnabled 1
В Unity также нужны экспериментальная версия пакета Oculus XR Plugin и Unity 2022.3.1 или более поздней версии. Документы для Unity лежат здесь, а для Unreal здесь.
Статус экспериментальной функции пока не позволяет загружать приложения с Depth в Quest Store или App Lab, поэтому разработчикам придётся использовать другие методы распространения, такие как SideQuest. В последующей версии SDK Meta обычно переводит функции из экспериментального состояния в производственное.
*В России признана экстремистской организацией
Не пропускайте важнейшие новости о дополненной и виртуальной реальность — подписывайтесь на Голографику в Telegram, ВК и Twitter! Поддержите проект на Boosty.
Далее: Инженер Meta* рассказал об улучшении рендеринга в Quest 3