XRMediaBinding: метод createCylinderLayer()
Ограниченное использование
Эта функция не является базовой, так как она не работает в некоторых из наиболее широко используемых браузеров.
Экспериментально: Это экспериментальная технология.
Перед использованием в рабочей среде внимательно ознакомьтесь со таблицей совместимости браузеров.
Метод createCylinderLayer() интерфейса XRMediaBinding возвращает объект XRCylinderLayer, представляющий собой слой, занимающий изогнутое прямоугольное пространство в виртуальной среде.
Синтаксис
createCylinderLayer(video, options)
Параметры
video-
Элемент
HTMLVideoElementдля отображения. options-
Объект для настройки
XRCylinderLayer. Объект может иметь следующие свойства, при этом свойствоspaceобязательно:aspectRatioНеобязательно-
Число, указывающее отношение видимой части цилиндра. Это отношение ширины видимой части цилиндра к ее высоте. Ширина вычисляется путем умножения
radiusнаcentralAngle. centralAngleНеобязательно-
Число, указывающее угол в радианах видимой части цилиндра. Значение по умолчанию:
0.78539(π / 4). invertStereoНеобязательно-
Булево значение, определяющее, следует ли инвертировать естественное расположение каждого вида в видео. По умолчанию
false. layoutНеобязательно-
Строка, определяющая расположение видео. Возможные значения:
default-
Слой вмещает все виды сеанса.
mono-
Присваивается и отображается один
XRSubImageдля обоих глаз. stereo-
Агент пользователя определяет, как он распределяет
XRSubImage(один или два) и макет (верх/низ или слева/справа). Рекомендуется использовать тип текстурыtexture-arrayдля макетовstereo. stereo-left-right-
Присваивается один
XRSubImage. Левый глаз получает левую область текстуры, правый — правую. Этот макет предназначен для минимизации вызовов отрисовки для контента, который уже находится в стерео (например, стерео видео или изображения). stereo-top-bottom-
Присваивается один
XRSubImage. Левый глаз получает верхнюю область текстуры, правый — нижнюю. Этот макет предназначен для минимизации вызовов отрисовки для контента, который уже находится в стерео (например, стерео видео или изображения). Значение по умолчанию:mono.
radiusНеобязательно-
Число, указывающее радиус цилиндра. Значение по умолчанию
2.0. spaceОбязательно-
Объект
XRSpace, определяющий пространственное отношение слоя к физической среде пользователя. transformНеобязательно-
Объект
XRRigidTransform, определяющий смещение и ориентацию относительноspace.
Возвращаемое значение
Объект XRCylinderLayer.
Примеры
Создание XRCylinderLayer для отображения видео
Создайте XRMediaBinding и используйте элемент HTMLVideoElement, который передается в createCylinderLayer(). Настройте слой с помощью параметров, перечисленных выше, и представьте слой устройству XR, добавив его в состояние отрисовки layers в XRSession.updateRenderState().
function onXRSessionStarted(xrSession) {
const xrMediaBinding = new XRMediaBinding(xrSession);
const video = document.createElement("video");
video.src = "just-fascination.mp4";
const videoLayer = xrMediaBinding.createCylinderLayer(video, {
space: xrReferenceSpace,
});
xrSession.updateRenderState({
layers: [videoLayer],
});
}
Спецификации
Совместимость браузеров
| Рабочий стол | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
createCylinderLayer |
Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
См. также
© 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/XRMediaBinding/createCylinderLayer