Spec-Zone.ru › Web APIs

XRWebGLBinding: метод getDepthInformation()

Ограниченная доступность

Эта функция не относится к Базовому уровню, так как она не работает в некоторых наиболее широко используемых браузерах.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

Экспериментально: Это экспериментальная технология
Перед использованием в производстве внимательно проверьте таблицу совместимости браузеров.

Метод getDepthInformation() интерфейса XRWebGLBinding возвращает объект XRWebGLDepthInformation, содержащий информацию о глубине WebGL.

Синтаксис

getDepthInformation(view)

Параметры

view

Объект XRView, полученный из позы зрителя.

Возвращаемое значение

Объект XRWebGLDepthInformation.

Исключения

NotSupportedError DOMException

Выбрасывается, если "depth-sensing" не входит в список включенных функций для этой XRSession.

InvalidStateError DOMException

Выбрасывается, если XRFrame не активна и не анимируется. Получение информации о глубине допустимо только в пределах обратного вызова requestAnimationFrame().

InvalidStateError DOMException

Выбрасывается, если использование глубины ( depthUsage) в сессии не "gpu-optimized".

Примеры

Получение информации о глубине WebGL

const canvasElement = document.querySelector(".output-canvas");
const gl = canvasElement.getContext("webgl");
await gl.makeXRCompatible();

// Make sure to request a session with depth-sensing enabled
const session = navigator.xr.requestSession("immersive-ar", {
  requiredFeatures: ["depth-sensing"],
  depthSensing: {
    usagePreference: ["gpu-optimized"],
    formatPreference: ["luminance-alpha"],
  },
});

const glBinding = new XRWebGLBinding(session, gl);

// …

// Obtain depth information in an active and animated frame
function rafCallback(time, frame) {
  session.requestAnimationFrame(rafCallback);
  const pose = frame.getViewerPose(referenceSpace);
  if (pose) {
    for (const view of pose.views) {
      const depthInformation = glBinding.getDepthInformation(view);
      if (depthInformation) {
        // Do something with the depth information
        // gl.bindTexture(gl.TEXTURE_2D, depthInformation.texture);
        // …
      }
    }
  }
}

Спецификации

Спецификация
Модуль WebXR Depth Sensing
# dom-xrwebglbinding-getdepthinformation

Совместимость браузеров

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
getDepthInformation 90 90 Нет 76 Нет 90 Нет 64 Нет 15.0 Нет

См. также

  • XRWebGLDepthInformation.texture

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/XRWebGLBinding/getDepthInformation

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API