Spec-Zone.ru › Web APIs

XRWebGLBinding: метод createProjectionLayer()

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

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

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

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

Метод createProjectionLayer() интерфейса XRWebGLBinding возвращает объект XRProjectionLayer, который представляет собой слой, заполняющий весь вид наблюдателя и обновляющийся с частотой, близкой к собственной частоте кадров устройства.

Синтаксис

createProjectionLayer(options)

Параметры

options

Объект для настройки XRProjectionLayer.

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

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

texture

Текстуры XRWebGLSubImage будут типа gl.TEXTURE_2D.

texture-array

Текстуры XRWebGLSubImage будут типа gl.TEXTURE_2D_ARRAY (только контексты WebGL 2). Значение по умолчанию texture.

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 Значение по умолчанию gl.RGBA.
depthFormat Необязательно

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

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

Значение с плавающей точкой, используемое для масштабирования слоя во время композиции. Значение 1.0 соответствует размеру пикселя по умолчанию для буфера кадров. (См. также XRWebGLLayer.getNativeFramebufferScaleFactor().) В отличие от других слоёв, XRProjectionLayer нельзя создать с явным значением ширины и высоты пикселей, так как размер определяется аппаратным обеспечением. (Проекционные слои заполняют весь вид наблюдателя.)

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

Объект XRProjectionLayer.

Примеры

Создание XRProjectionLayer в контексте WebGL 2

Вариант textureType позволяет выделять массив текстур, в котором каждый XRView будет отрисовываться в отдельном уровне массива. Это позволяет оптимизировать отрисовку, например, используя расширение OVR_multiview2, доступное в контекстах WebGL 2.

function onXRSessionStarted(xrSession) {
  const glCanvas = document.createElement("canvas");
  const gl = glCanvas.getContext("webgl2", { xrCompatible: true });
  const xrGlBinding = new XRWebGLBinding(xrSession, gl);
  const projectionLayer = xrGlBinding.createProjectionLayer({
    textureType: "texture-array",
  });
  xrSession.updateRenderState({
    layers: [projectionLayer],
  });
}

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

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

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

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

См. также

  • XRProjectionLayer
  • Константы 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/createProjectionLayer

Spec-Zone.ru

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