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.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: - Все поддерживаемые расширением форматы.
depthFormatНеобязательно-
GLenumопределяющий тип данных данных глубины текстуры или0указывая, что слой не должен предоставлять текстуру глубины. (В этом случаеXRProjectionLayer.ignoreDepthValuesбудетtrue.) Возможные значения для контекстовWebGLRenderingContextс включённым расширениемWEBGL_depth_texture, или для контекстовWebGL2RenderingContext(без расширения):-
gl.DEPTH_COMPONENT(По умолчанию) -
gl.DEPTH_STENCILДополнительно для контекстовWebGL2RenderingContext: gl.DEPTH_COMPONENT24gl.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],
});
}
Спецификации
Совместимость с браузерами
| Рабочий стол | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
createCubeLayer |
Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
См. также
© 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