three.js WebXRManager
此类表示 WebXR 设备 API 的抽象,并由 WebGLRenderer 在内部使用。 WebXRManager 还提供了一个公共接口,允许用户启用/禁用 XR 并执行 XR 相关任务,例如检索控制器。
属性
.cameraAutoUpdate : Boolean
管理员的XR相机是否应自动更新。默认为true。
.enabled : Boolean
此标志通知渲染器准备好进行 XR 渲染。默认为假。如果您要在应用中使用 XR,请将其设置为 true。
.isPresenting : Boolean
XR 演示是否处于活动状态。默认为假。该标志是只读的,由 WebXRManager 自动设置。
方法
.getCamera () : ArrayCamera
返回表示活动 XR 会话的 XR 相机的 ArrayCamera 实例。对于每个视图,它在其 cameras 属性中包含一个单独的相机对象。
当前未使用相机的 fov,不反映 XR 相机的 fov。如果您需要应用级别的 fov,则必须从 XR 相机的投影矩阵中手动计算。
.getController ( index : Integer ) : Group
index — 控制器的索引。
返回表示 XR 控制器所谓的目标光线空间的组。使用此空间可视化 3D 对象,支持用户完成 UI 交互等指向任务。
.getControllerGrip ( index : Integer ) : Group
index — 控制器的索引。
返回一个组,代表所谓的 XR 控制器的抓地力空间。如果用户要握住其他 3D 对象(如光剑),请使用此空间。
注意:如果你想显示用户手中的东西并同时提供指向光线,你需要将手持对象附加到 .getControllerGrip() 返回的组,并将光线附加到 .getController 返回的组().这个想法是在同一个 WebXR 控制器的两个不同坐标空间中有两个不同的组。
.getHand ( index : Integer ) : Group
index — 控制器的索引。
返回代表 XR 控制器所谓的手或关节空间的组。在不使用物理控制器时,使用此空间可视化用户的手。
.getPlanes () : Set
返回由 WebXR 的平面检测 API 检测到的平面集。
.getReferenceSpace () : String
返回参考空间。
.getSession () : XRSession
返回 XRSession 对象,它允许在应用程序级别更细粒度地管理活动的 WebXR 会话。
.setFramebufferScaleFactor ( factor : Float, limited : Boolean ) : undefined
factor — 要设置的帧缓冲区比例因子。
limited — 如果值最终高于设备的功能,是否应将帧缓冲区比例因子减小到本机限制。默认为假。
指定在渲染到 XR 设备时确定帧缓冲区大小时要使用的比例因子。该值是相对于默认 XR 设备显示分辨率的。默认值为 1。值为 0.5 将指定具有显示器原始分辨率 50% 的帧缓冲区。
注意:在呈现 XR 内容时无法更改帧缓冲区比例因子。
.setReferenceSpace ( referenceSpace : XRReferenceSpace ) : undefined
referenceSpace — 自定义参考空间。
可用于配置覆盖默认参考空间的自定义参考空间。
.setReferenceSpaceType ( referenceSpaceType : String ) : undefined
referenceSpaceType — 要设置的参考空间类型。
可用于配置与用户物理环境的空间关系。根据用户在 3D 空间中的移动方式,设置适当的参考空间可以改进跟踪。默认为本地楼层。请查看 MDN 以了解可能的值及其用例。
.updateCamera ( camera : PerspectiveCamera ) : undefined
更新 XR 相机的状态。如果将 .cameraAutoUpdate 设置为 false,请在应用级别使用此方法。该方法需要场景的非 XR 摄像机作为参数。调用此方法时,传入的相机变换会自动调整到 XR 相机的位置。
注意:在呈现 XR 内容时无法更改参考空间类型。
源码
src/renderers/webxr/WebXRManager.js
更多建议: