安全上下文
此特征只可用于 安全上下文 (HTTPS),在某些或所有 支持浏览器 .

XRView interface's read-only eye property is a string taken from the XREye enumerated type, indicating which eye's viewpoint the XRView represents: left or right . For views which represent neither eye, such as monoscopic views, this property's value is none .

句法

let eye = xrView.eye;
					

A DOMString whose value is one of the strings enumerated by the XREye 类型:

left
XRView represents the point-of-view of the viewer's left eye.
right

The view represents the viewer's right eye.

none
XRView describes a monoscopic view, or the view otherwise doesn't represent a particular eye's point-of-view.

用法注意事项

The primary purpose of this property is to allow the correct area of any pre-rendered stereo content to be presented to the correct eye. For dynamically-rendered 3D content, you can usually ignore this and simply render each of the viewer's views, one after another.

范例

This code, from the viewer pose's renderer, iterates over the pose's views and renders them. However , we have flags which, if true , indicate that a particular eye has been injured during gameplay. When rendering that eye, if the flag is true , that view is skipped instead of being rendered.

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 (let 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);
  }
}
					

For each of the views, the value of eye is checked and  if it's either left or right , we check to see if the body.leftEye.injured or body.rightEye.injured 特性为 true ; if so, we call a function updateInjury() on that eye to do things such as allow a bit of healing to occur, track the progress of a poison effect, or the like, as appropriate for the game's needs.

updateInjury() 返回 true if the eye is still injured or false if the eye has been restored to health by the function,. If the result is false , indicating that the eye is now healthy, we render the scene for that eye. Otherwise, we don't.

规范

规范 状态 注释
WebXR 设备 API
The definition of 'XRView.eye' in that specification.
工作草案 初始定义。

浏览器兼容性

更新 GitHub 上的兼容性数据
桌面 移动
Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet
eye Chrome 79 Edge 79 Firefox 不支持 No IE 不支持 No Opera 不支持 No Safari 不支持 No WebView Android 不支持 No Chrome Android 79 Firefox Android 不支持 No Opera Android 不支持 No Safari iOS 不支持 No Samsung Internet Android 11.2

图例

完整支持

完整支持

不支持

不支持

元数据

  • 最后修改: