XRView: свойство eye
Ограниченная доступность
Эта функция не является Baseline, так как она не работает в некоторых из наиболее широко используемых браузеров.
Экспериментально: Это экспериментальная технология
Перед использованием в продакшене тщательно проверьте таблицу совместимости браузеров в разделе Совместимость с браузерами.
Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или всех поддерживающих браузерах.
Чтение только eye свойство интерфейса XRView — это строка, указывающая, на взгляд какого глаза указывает XRView: left или right. Для представлений, которые не отображают ни один глаз, таких как моноскопические представления, значение этого свойства равно none.
Значение
Строка, которая может иметь одно из следующих значений:
Примечания по использованию
Основное назначение этого свойства — обеспечить правильное отображение области любого предварительно рендерного стереоконтента для соответствующего глаза. Для динамически рендерного 3D-контента, как правило, можно игнорировать это свойство и рендерить каждый из представлений зрителя один за другим.
Примеры
Этот код из рендерера позы зрителя итерируется по представлениям позы и рендерит их. Однако, у нас есть флаги, которые, если true, указывают на то, что определённый глаз был повреждён во время игры. При рендеринге этого глаза, если флаг true, это представление пропускается вместо рендеринга.
glLayer = xrSession.renderState.baseLayer;
gl.bindFramebuffer(gl.FRAMEBUFFER, glLayer.framebuffer);
gl.clearColor(0, 0, 0, 1.0);
gl.clearDepth(1.0);
gl.clear(gl.COLOR_BUFFER_BIT, gl.DEPTH_BUFFER_BIT);
for (const view of xrPose.views) {
let skipView = false;
if (view.eye === "left" && body.leftEye.injured) {
skipView = updateInjury(body.leftEye);
} else if (view.eye === "right" && body.rightEye.injured) {
skipView = updateInjury(body.rightEye);
}
if (!skipView) {
let viewport = glLayer.getViewport(view);
gl.viewport(viewport.x, viewport.y, viewport.width, viewport.height);
renderScene(gl, view);
}
}
Для каждого из представлений проверяется значение eye, и если оно равно left или right, проверяется, является ли body.leftEye.injured или body.rightEye.injured свойство true; в этом случае вызывается функция updateInjury() для этого глаза, чтобы выполнить действия, такие как, например, позволить некоторое исцеление, отслеживать прогресс действия яда и т. п., в соответствии с потребностями игры.
updateInjury() возвращает true, если глаз всё ещё повреждён, или false, если глаз восстановлен функцией. Если результат false, что означает, что глаз теперь здоров, мы рендерим сцену для этого глаза. В противном случае мы этого не делаем.
Спецификации
| Спецификация |
|---|
| API устройств WebXR # dom-xrview-eye |
Совместимость с браузерами
| Рабочий стол | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
eye |
79 | 79 | Нет | 66 | Нет | 79 | Нет | 57 | Нет | 11.2 | Нет |
© 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/XRView/eye