返回介绍

手册

参考

示例

开发者参考

WebXRManager

发布于 2021-07-10 14:14:19 字数 5357 浏览 1309 评论 0 收藏 0

This class represents an abstraction of the WebXR Device API and is internally used by WebGLRenderer. WebXRManager also provides a public interface that allows users to enable/disable XR and perform XR related tasks like for instance retrieving controllers.

Properties

.cameraAutoUpdate : Boolean

Whether the manager's XR camera should be automatically updated or not. Default is true.

.enabled : Boolean

This flag notifies the renderer to be ready for XR rendering. Default is false. Set it to true if you are going to use XR in your app.

.isPresenting : Boolean

Whether XR presentation is active or not. Default is false. This flag is read-only and automatically set by WebXRManager.

Methods

.getCamera () : ArrayCamera

Returns an instance of ArrayCamera which represents the XR camera of the active XR session. For each view it holds a separate camera object in its cameras property.

The camera's fov is currently not used and does not reflect the fov of the XR camera. If you need the fov on app level, you have to compute in manually from the XR camera's projection matrices.

.getController ( index : Integer ) : Group

index — The index of the controller.

Returns a Group representing the so called target ray space of the XR controller. Use this space for visualizing 3D objects that support the user in pointing tasks like UI interaction.

.getControllerGrip ( index : Integer ) : Group

index — The index of the controller.

Returns a Group representing the so called grip space of the XR controller. Use this space if the user is going to hold other 3D objects like a lightsaber.

Note: If you want to show something in the user's hand AND offer a pointing ray at the same time, you'll want to attached the handheld object to the group returned by .getControllerGrip() and the ray to the group returned by .getController(). The idea is to have two different groups in two different coordinate spaces for the same WebXR controller.

.getHand ( index : Integer ) : Group

index — The index of the controller.

Returns a Group representing the so called hand or joint space of the XR controller. Use this space for visualizing the user's hands when no physical controllers are used.

.getReferenceSpace () : String

Returns the reference space.

.getSession () : XRSession

Returns the XRSession object which allows a more fine-grained management of active WebXR sessions on application level.

.setFramebufferScaleFactor ( framebufferScaleFactor : Float ) : void

framebufferScaleFactor — The framebuffer scale factor to set.

Specifies the scaling factor to use when determining the size of the framebuffer when rendering to a XR device. The value is relative to the default XR device display resolution. Default is 1. A value of 0.5 would specify a framebuffer with 50% of the display's native resolution.

Note: It is not possible to change the framebuffer scale factor while presenting XR content.

.setReferenceSpaceType ( referenceSpaceType : String ) : void

referenceSpaceType — The reference space type to set.

Can be used to configure a spatial relationship with the user's physical environment. Depending on how the user moves in 3D space, setting an appropriate reference space can improve tracking. Default is local-floor. Please check out the MDN for possible values and their use cases.

.updateCamera ( camera : PerspectiveCamera ) : void

Updates the state of the XR camera. Use this method on app level if you set .cameraAutoUpdate to false. The method requires the non-XR camera of the scene as a parameter. The passed in camera's transformation is automatically adjusted to the position of the XR camera when calling this method.

Note: It is not possible to change the reference space type while presenting XR content.

Source

src/renderers/webxr/WebXRManager.js

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文