Если коротко:
Датчик глубины или вычислительная система определяет расстояние до поверхностей и формирует карту помещения. Приложение использует её для размещения виртуальных объектов и окклюзии в смешанной реальности. Точность зависит от оборудования, света и свойств поверхности, поэтому стекло и тонкие предметы могут распознаваться хуже.
Depth Sensor VR Headset помогает определить расстояние до поверхностей и построить представление о помещении. Эти данные нужны смешанной реальности: виртуальный предмет может скрываться за столом, вставать на пол и учитывать границы реальных объектов.
Часть гарнитур получает глубину без отдельного аппаратного сенсора. Такие системы вычисляют её по изображениям нескольких камер и движению устройства. Для приложения важны доступность карты, задержка и точность. Наличие отдельного модуля в характеристиках не описывает качество результата целиком.
Как получают глубину
Стереозрение сравнивает изображения двух камер. Один и тот же объект находится в разных местах кадров, а величина смещения помогает оценить расстояние. Метод зависит от освещения и наличия заметных деталей на поверхности.
Активные сенсоры проецируют инфракрасный рисунок или измеряют время прохождения света. Они могут увереннее работать с однотонными поверхностями, но имеют собственный диапазон, энергопотребление и ограничения при ярком внешнем свете.
Программная глубина использует набор обычных камер, движение гарнитуры и обученные модели. Производитель может улучшать результат обновлениями, хотя такая оценка тоже ошибается на стекле, отражающих предметах и тонких границах.
Карта глубины и пространственная модель
Карта глубины хранит расстояние для точек изображения в конкретный момент. Пространственная сетка описывает геометрию помещения в координатах сцены. Система объединяет последовательность измерений, чтобы получить устойчивые плоскости, стены и объекты.
Карта может обновляться быстрее, чем подробная сетка. Поэтому движущийся человек виден в текущей глубине, но не обязан становиться постоянной частью модели комнаты. Разработчик выбирает данные под задачу: кратковременная окклюзия требует свежего кадра, а размещение мебели опирается на устойчивую геометрию.
Для чего глубина нужна приложению
Окклюзия позволяет реальному предмету перекрывать виртуальный. Без неё цифровой объект рисуется поверх руки или стола и нарушает восприятие расстояния. Глубина также помогает определить место столкновения и приблизительно учитывать мебель при построении маршрута.
В приложениях смешанной реальности данные используют для:
- размещения объектов на полу и поверхностях;
- скрытия виртуальной геометрии за реальными препятствиями;
- генерации границ и предупреждений;
- адаптации сцены под размер комнаты.
Для точных измерений промышленного класса возможностей потребительской гарнитуры может не хватить. Ошибка зависит от расстояния, материала поверхности и угла наблюдения.
Ограничения и приватность
Тонкие ножки мебели, провода и прозрачные поверхности распознаются хуже крупных матовых объектов. Карта может содержать отверстия и дрожащие границы. Приложение не должно считать такую модель гарантией физической безопасности.
Пространственные данные описывают помещение пользователя. Разработчику следует запрашивать только нужные разрешения, не сохранять карту без необходимости и ясно объяснять назначение обработки. Конкретная политика зависит от платформы и требований магазина.
Работа с Depth API
SDK обычно предоставляет текстуру глубины, преобразования камер и параметры качества. Разработчик сопоставляет пиксель с направлением в сцене, восстанавливает расстояние и использует его в материале окклюзии либо логике взаимодействия.
Тестировать нужно на целевом устройстве. Проверка включает тёмную комнату, яркое окно, стекло, движущегося человека и предметы разного размера. Сравнивайте визуальный результат с задержкой: сильное сглаживание уменьшает шум, но оставляет след за движущимся объектом.
Датчик глубины даёт VR-гарнитуре дополнительную информацию о реальном окружении. Для пользователя результат заметен по устойчивому размещению и правильному перекрытию объектов, а разработчику приходится учитывать шум, задержку и неполную геометрию.