three.js WebXRManager

2023-02-16 17:48 更新

此类表示 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


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号