XRWebGLBinding: метод createQuadLayer()
Ограниченная доступность
Эта функция не относится к Baseline, так как она не работает в некоторых из наиболее широко используемых браузеров.
Экспериментальная функция: Это экспериментальная технология
Тщательно проверьте таблицу совместимости браузеров перед использованием в производстве.
Метод createQuadLayer() интерфейса XRWebGLBinding возвращает объект XRQuadLayer, представляющий собой слой, занимающий плоскую прямоугольную область в виртуальной среде.
Синтаксис
createQuadLayer(options)
Параметры
options-
Объект для настройки
XRQuadLayer. Он должен содержать свойстваspace,viewPixelHeight, иviewPixelWidth. Объектinitимеет следующие свойства:colorFormatНеобязательно-
Значение
GLenum, определяющее тип данных цветовой текстуры. Возможные значения:gl.RGB-
gl.RGBAДополнительно, для контекстов с включённым расширениемEXT_sRGB: ext.SRGB_EXT-
ext.SRGB_ALPHA_EXTДополнительно, для контекстовWebGL2RenderingContext: gl.RGBA8gl.RGB8gl.SRGB8-
gl.RGB8_ALPHA8Дополнительно, для контекстов с включённым расширениемWEBGL_compressed_texture_etc: ext.COMPRESSED_RGB8_ETC2ext.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2ext.COMPRESSED_RGBA8_ETC2_EACext.COMPRESSED_SRGB8_ETC2ext.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2-
ext.COMPRESSED_SRGB8_ALPHA8_ETC2_EACДополнительно, для контекстов с включённым расширениемWEBGL_compressed_texture_astc: - Все поддерживаемые форматы расширения. Значение по умолчанию —
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.
heightНеобязательно-
Число, определяющее высоту слоя в метрах. Значение по умолчанию —
1.0. isStaticНеобязательно-
Булево значение, которое, если истинно, указывает, что рисование на этом слое возможно только когда
needsRedrawимеет значениеtrue. Значение по умолчанию —false. layoutНеобязательно-
Строка, определяющая расположение слоя. Возможные значения:
default-
Слой адаптируется ко всем представлениям сессии.
mono-
Присваивается и отображается один
XRSubImageдля обоих глаз. stereo-
Агент пользователя определяет, как присваивается
XRSubImage(один или два) и расположение (верх/низ или слева/справа). stereo-left-right-
Присваивается один
XRSubImage. Левый глаз получает левую область текстуры, правый — правую. stereo-top-bottom-
Присваивается один
XRSubImage. Левый глаз получает верхнюю область текстуры, правый — нижнюю. Значение по умолчанию —mono.
mipLevelsНеобязательно-
Число, определяющее желаемое количество уровней mip. Значение по умолчанию —
1. spaceОбязательно-
Объект
XRSpace, определяющий пространственные отношения слоя к физической среде пользователя. textureTypeНеобязательно-
Строка, определяющая тип текстуры слоя. Возможные значения:
texture-
Текстуры
XRWebGLSubImageбудут типаgl.TEXTURE_2D. texture-array-
Текстуры
XRWebGLSubImageбудут типаgl.TEXTURE_2D_ARRAY(только контексты WebGL 2). Значение по умолчанию —texture.
transformНеобязательно-
Объект
XRRigidTransform, определяющий смещение и ориентацию относительноspace. viewPixelHeightОбязательно-
Число, определяющее высоту слоя в пикселях.
viewPixelWidthОбязательно-
Число, определяющее ширину слоя в пикселях.
widthНеобязательно-
Число, определяющее ширину слоя в метрах. Значение по умолчанию —
1.0.
Возвращаемое значение
Объект XRQuadLayer.
Примеры
Создание XRQuadLayer
Настройте слой с помощью перечисленных выше свойств в вызове createQuadLayer(). Чтобы представить слои устройству 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 quadLayer = xrGlBinding.createQuadLayer({
space: xrReferenceSpace,
viewPixelHeight: 512,
viewPixelWidth: 512,
transform: new XRRigidTransform({ z: -2 }),
});
xrSession.updateRenderState({
layers: [quadLayer],
});
}
Спецификации
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
createQuadLayer |
Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
См. также
© 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/createQuadLayer