WebXRManager

Этот класс представляет собой абстракцию WebXR Device API и внутренне используется WebGLRenderer. WebXRManager также предоставляет публичный интерфейс, который позволяет пользователям включать/выключать XR и выполнять связанные с XR задачи, такие как получение информации о контроллерах.

Свойства

.cameraAutoUpdate : Boolean

Нужно ли обновлять XR-камеру менеджера автоматически или нет. По умолчанию true.

.enabled : Boolean

Это свойство уведомляет рендерер о готовности к XR-рендерингу. По умолчанию false. Установите его в true, если вы собираетесь использовать XR в своем приложении.

.isPresenting : Boolean

Является ли презентация XR активной или нет. По умолчанию false. Это свойство доступно только для чтения и автоматически устанавливается WebXRManager.

Методы

.arHitTest(x : Float, y : Float, hitCallback : Function, missCallback : Function)

Запускает режим асинхронного тестирования пересечения в режиме дополненной реальности.

.getCamera() → ArrayCamera

Возвращает экземпляр класса ArrayCamera, который представляет камеру, используемую для XR-сессии. Каждому глазу соответствует свой объект камеры из массива cameras.

Параметр угла зрения fov не используется и не представляет угол зрения для XR-камеры.

.getController(index : Integer) → Group

index — индекс контроллера.

Возвращает группу, представляющую систему координат target ray контроллера. Используйте эту систему координат для визуализации 3Д-объектов, которые помогают пользователю в задачах наведения, таких как взаимодействие с пользовательским интерфейсом.

.getControllerGrip(index : Integer) → Group

index — индекс контроллера.

Возвращает группу, представляющую систему координат grip контроллера. Используйте эту систему координат, если пользователь собирается держать в руке другие 3Д-объекты, например световой меч.

Примечание: если вы хотите одновременно показать что-то в руке пользователя и предложить луч наведения, вам нужно прикрепить удерживаемый объект к группе, возвращаемой .getControllerGrip(), а луч — к группе, возвращаемой .getController(). Идея заключается в том, чтобы иметь две разные группы в двух разных координатных пространствах для одного и того же контроллера WebXR.

.getFoveation() → Float

Возвращает уровень фовеации, используемый XR-композитором для слоя проекции.

.getHand(index : Integer) → Group

index — индекс контроллера.

Возвращает группу, определяющие так называемые hand и joint системы координат XR-контроллера. Данные системы координат используются для визуализации рук пользователя в отсутствии контроллера.

.getPlanes() → Set

Возвращает плоскости, определённые в процессе работы API plane detection WebXR.

.getReferenceSpace() → String

Возвращает опорную систему координат.

.getSession() → XRSession

Возвращает объект XRSession, позволяющий осуществлять тонкую настройку активных WebXR-сессий на уровне приложения.

.setFoveation(foveation : Float)

foveation — устанавливаемый уровень фовеации.

Устанавливает уровень фовеации, используемый XR-композитором для слоя. Значение должно находиться в интервале от 0 до 1.

.setFramebufferScaleFactor(framebufferScaleFactor : Float)

framebufferScaleFactor — устанавливаемый коэффициент масштабирования фреймбуфера.

Указывает коэффициент масштабирования, используемый при определении размера фреймбуффера при рендеринге на XR-устройстве. Значение задается относительно разрешения дисплея XR-устройства по умолчанию. По умолчанию 1. Значение 0.5 определяет фреймбуфер с 50% разрешением от исходного.

Примечание: изменить коэффициент масштабирования фреймбуфера в процессе отображении XR-контента невозможно.

.setReferenceSpace(referenceSpace : XRReferenceSpace)

referenceSpace — пользовательская опорная система координат.

Метод используется для установки опорной системы координат.

.setReferenceSpaceType(referenceSpaceType : String) → void

referenceSpaceType — устанавливаемый тип опорной системы координат.

Может использоваться для настройки пространственных отношений с физическим окружением пользователя. В зависимости от того, как пользователь перемещается в трехмерном пространстве, установка соответствующего опорного пространства может улучшить отслеживание. По умолчанию используется "local-floor". Возможные типы и их использование смотрите в документации MDN.

Примечание: изменить тип опорной системы координат в процессе отображении XR-контента невозможно.

.updateCamera(camera : PerspectiveCamera)

Обновляет состояние XR-камеры. Этот метод используется в случае, если .cameraAutoUpdate установлен в false. Метод принимает в качестве параметра камеру сцены (не XR). Её положение будет обновлено с учётом позиции XR-камеры в процессе вызова данного метода.

Пазлы

Пазлы AR/VR могут использоваться для работы с AR/VR сессиями без программирования.

Исходный файл

О том как получить исходный код этого модуля читайте тут.