Spec-Zone.ru › Web APIs

XRWebGLBinding: createCubeLayer() метод

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

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

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

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

Метод createCubeLayer() интерфейса XRWebGLBinding возвращает объект XRCubeLayer, который является слоем, отображающим данные непосредственно с кубической карты и проецирующим её на внутренние грани куба.

Синтаксис

createCubeLayer(init)

Параметры

init

Объект для настройки XRCubeLayer. Он должен содержать свойства space, viewPixelHeight, и viewPixelWidth. Объект init имеет следующие свойства:

colorFormat Необязательно

GLenum определяющий тип данных цветовой текстуры. Возможные значения:

  • gl.RGB
  • gl.RGBA (По умолчанию) Дополнительно для контекстов с включённым расширением EXT_sRGB:
  • ext.SRGB_EXT
  • ext.SRGB_ALPHA_EXT Дополнительно для контекстов WebGL2RenderingContext:
  • gl.RGBA8
  • gl.RGB8
  • gl.SRGB8
  • gl.RGB8_ALPHA8 Дополнительно для контекстов с включённым расширением WEBGL_compressed_texture_etc:
  • ext.COMPRESSED_RGB8_ETC2
  • ext.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2
  • ext.COMPRESSED_RGBA8_ETC2_EAC
  • ext.COMPRESSED_SRGB8_ETC2
  • ext.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2
  • ext.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC Дополнительно для контекстов с включённым расширением WEBGL_compressed_texture_astc:
  • Все поддерживаемые расширением форматы.
depthFormat Необязательно

GLenum определяющий тип данных данных глубины текстуры или 0 указывая, что слой не должен предоставлять текстуру глубины. (В этом случае XRProjectionLayer.ignoreDepthValues будет true.) Возможные значения для контекстов WebGLRenderingContext с включённым расширением WEBGL_depth_texture, или для контекстов WebGL2RenderingContext (без расширения):

  • gl.DEPTH_COMPONENT (По умолчанию)
  • gl.DEPTH_STENCIL Дополнительно для контекстов WebGL2RenderingContext:
  • gl.DEPTH_COMPONENT24
  • gl.DEPTH24_STENCIL24
isStatic Необязательно

Булево значение, которое, если равно true, указывает, что к этому слою можно рисовать только тогда, когда needsRedraw равно true. Значение по умолчанию - false.

layout

Строка, определяющая расположение слоя. Возможные значения:

  • default: Слой охватывает все представления сеанса.
  • mono: Отображается один XRSubImage для обоих глаз.
  • stereo: Пользовательский агент определяет, как он выделяет XRSubImage (один или два) и расположение (верх/низ или слева/справа).
  • stereo-left-right: Выделяется один XRSubImage. Левый глаз получает левую часть текстуры, правый глаз - правую.
  • stereo-top-bottom: Выделяется один XRSubImage. Левый глаз получает верхнюю часть текстуры, правый глаз - нижнюю. Значение по умолчанию - mono.
mipLevels Необязательно

Число, определяющее желаемое количество уровней mipmap. Значение по умолчанию - 1.

orientation Необязательно

DOMPointReadOnly указывающий ориентацию относительно свойства space.

space Обязательно

Объект XRSpace, определяющий пространственные отношения слоя с физической средой пользователя.

viewPixelHeight Обязательно

Число, определяющее высоту слоя в пикселях.

viewPixelWidth Обязательно

Число, определяющее ширину слоя в пикселях.

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

Объект XRCubeLayer.

Примеры

Создание XRCubeLayer

Настройте слой куба, используя перечисленные выше свойства в вызове createCubeLayer(). Для отображения слоёв на устройстве XR добавьте их в состояние отрисовки layers с помощью XRSession.updateRenderState().

function onXRSessionStarted(xrSession) {
  const glCanvas = document.createElement("canvas");
  const gl = glCanvas.getContext("webgl2", { xrCompatible: true });
  const xrGlBinding = new XRWebGLBinding(xrSession, gl);
  const cubeLayer = xrGlBinding.createCubeLayer({
    space: xrReferenceSpace,
    viewPixelHeight: 512,
    viewPixelWidth: 512,
  });
  xrSession.updateRenderState({
    layers: [cubeLayer],
  });
}

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

Спецификация
WebXR Layers API Level 1
# dom-xrwebglbinding-createcubelayer

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

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

См. также

  • XRCubeLayer
  • Константы WebGL

© 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/createCubeLayer

Spec-Zone.ru

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