You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
142 lines
5.5 KiB
142 lines
5.5 KiB
<!DOCTYPE html>
|
|
<html lang="zh">
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<base href="../../../../" />
|
|
<script src="page.js"></script>
|
|
<link type="text/css" rel="stylesheet" href="page.css" />
|
|
</head>
|
|
<body>
|
|
|
|
<h1>[name]</h1>
|
|
|
|
<p class="desc">
|
|
|
|
This class represents an abstraction of the WebXR Device API and is internally used by [page:WebGLRenderer].
|
|
[name] also provides a public interface that allows users to enable/disable XR and perform XR related tasks like
|
|
for instance retrieving controllers.
|
|
</p>
|
|
|
|
<h2>Properties</h2>
|
|
|
|
<h3>[property:Boolean cameraAutoUpdate]</h3>
|
|
<p>
|
|
Whether the manager's XR camera should be automatically updated or not. Default is *true*.
|
|
</p>
|
|
|
|
<h3>[property:Boolean enabled]</h3>
|
|
<p>
|
|
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.
|
|
</p>
|
|
|
|
<h3>[property:Boolean isPresenting]</h3>
|
|
<p>
|
|
Whether XR presentation is active or not. Default is *false*. This flag is read-only and automatically set by [name].
|
|
</p>
|
|
|
|
<h2>Methods</h2>
|
|
|
|
<h3>[method:ArrayCamera getCamera]()</h3>
|
|
<p>
|
|
Returns an instance of [page:ArrayCamera] which represents the XR camera of the active XR session.
|
|
For each view it holds a separate camera object in its [page:ArrayCamera.cameras cameras] property.
|
|
</p>
|
|
<p>
|
|
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.
|
|
</p>
|
|
|
|
<h3>[method:Group getController]( [param:Integer index] )</h3>
|
|
<p>
|
|
[page:Integer index] — The index of the controller. <br /><br />
|
|
|
|
Returns a [page: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.
|
|
</p>
|
|
|
|
<h3>[method:Group getControllerGrip]( [param:Integer index] )</h3>
|
|
<p>
|
|
[page:Integer index] — The index of the controller. <br /><br />
|
|
|
|
Returns a [page: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.
|
|
</p>
|
|
|
|
<p>
|
|
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 [page:.getControllerGrip]() and the ray to the group returned by [page:.getController](). The idea is to have two different groups
|
|
in two different coordinate spaces for the same WebXR controller.
|
|
</p>
|
|
|
|
<h3>[method:Group getHand]( [param:Integer index] )</h3>
|
|
<p>
|
|
[page:Integer index] — The index of the controller. <br /><br />
|
|
|
|
Returns a [page: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.
|
|
</p>
|
|
|
|
<h3>[method:Set getPlanes]()</h3>
|
|
<p>
|
|
Returns the set of planes detected by WebXR's plane detection API.
|
|
</p>
|
|
|
|
<h3>[method:String getReferenceSpace]()</h3>
|
|
<p>
|
|
Returns the reference space.
|
|
</p>
|
|
|
|
<h3>[method:XRSession getSession]()</h3>
|
|
<p>
|
|
Returns the *XRSession* object which allows a more fine-grained management of active WebXR sessions on application level.
|
|
</p>
|
|
|
|
<h3>[method:undefined setFramebufferScaleFactor]( [param:Float factor], [param:Boolean limited] )</h3>
|
|
<p>
|
|
[page:Float factor] — The framebuffer scale factor to set.<br />
|
|
[page:Boolean limited] — Whether the framebuffer scale factor should be reduced to the native limit if the value ends up being higher than the device's capabilities. Default is `false`.<br /><br />
|
|
|
|
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.
|
|
</p>
|
|
|
|
<p>
|
|
Note: It is not possible to change the framebuffer scale factor while presenting XR content.
|
|
</p>
|
|
|
|
<h3>[method:undefined setReferenceSpace]( [param:XRReferenceSpace referenceSpace] )</h3>
|
|
<p>
|
|
[page:XRReferenceSpace referenceSpace] — A custom reference space.<br /><br />
|
|
|
|
Can be used to configure a custom reference space which overwrites the default reference space.
|
|
</p>
|
|
|
|
<h3>[method:undefined setReferenceSpaceType]( [param:String referenceSpaceType] )</h3>
|
|
<p>
|
|
[page:String referenceSpaceType] — The reference space type to set.<br /><br />
|
|
|
|
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 [link:https://developer.mozilla.org/en-US/docs/Web/API/XRReferenceSpaceType MDN] for possible values and their use cases.
|
|
</p>
|
|
|
|
<h3>[method:undefined updateCamera]( [param:PerspectiveCamera camera] )</h3>
|
|
<p>
|
|
Updates the state of the XR camera. Use this method on app level if you set [page:.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.
|
|
</p>
|
|
|
|
<p>
|
|
Note: It is not possible to change the reference space type while presenting XR content.
|
|
</p>
|
|
|
|
<h2>Source</h2>
|
|
|
|
<p>
|
|
[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
|
|
</p>
|
|
</body>
|
|
</html>
|
|
|