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.RGBA8gl.RGB8gl.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],
});
}
Спецификации
Совместимость с браузерами
| Рабочий стол | Мобильные | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
createProjectionLayer |
Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
См. также
© 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