Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. Web APIs
  3. XRSession

XRSession

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Secure context: This feature is available only insecure contexts (HTTPS), in some or allsupporting browsers.

Experimental:This is anexperimental technology
Check theBrowser compatibility table carefully before using this in production.

TheXRSession interface of theWebXR Device API represents an ongoing XR session, providing methods and properties used to interact with and control the session. To open a WebXR session, use theXRSystem interface'srequestSession() method.

WithXRSession methods, you can poll the viewer's position and orientation (theXRViewerPose), gather information about the user's environment, and present imagery to the user.XRSession supports both inline and immersive virtual and augmented reality modes.

EventTarget XRSession

Instance properties

In addition to the properties listed below,XRSession inherits properties from its parent interface,EventTarget.

depthDataFormatExperimentalRead only

Returns the depth-sensing data format with which the session was configured.

depthUsageExperimentalRead only

Returns the depth-sensing usage with which the session was configured.

domOverlayStateExperimentalRead only

Provides information about the DOM overlay, if the feature is enabled.

enabledFeaturesExperimentalRead only

Returns an array of grantedsession features.

environmentBlendModeExperimentalRead only

Returns this session's blend mode which denotes how much of the real-world environment is visible through the XR device and how the device will blend the device imagery with it.

inputSourcesExperimentalRead only

Returns a list of this session'sXRInputSources, each representing an input device used to control the camera and/or scene.

interactionModeExperimentalRead only

Returns this session's interaction mode, which describes the best space (according to the user agent) for the application to draw interactive UI for the current session.

preferredReflectionFormatExperimentalRead only

Returns this session's preferred reflection format used for lighting estimation texture data.

renderStateExperimentalRead only

AnXRRenderState object which contains options affecting how the imagery is rendered. This includes things such as the near and far clipping planes (distances defining how close and how far away objects can be and still get rendered), as well as field of view information.

visibilityStateExperimentalRead only

A string indicating whether or not the session's imagery is visible to the user, and if so, if it's being visible but not currently the target for user events.

Instance methods

XRSession provides the following methods in addition to those inherited from its parent interface,EventTarget.

cancelAnimationFrame()Experimental

Removes a callback from the animation frame painting callback fromXRSession's set of animation frame rendering callbacks, given the identifying handle returned by a previous call torequestAnimationFrame().

end()Experimental

Ends the WebXR session. Returns apromise which resolves when the session has been shut down.

requestAnimationFrame()Experimental

Schedules the specified method to be called the next time theuser agent is working on rendering an animation frame for the WebXR device. Returns an integer value which can be used to identify the request for the purposes of canceling the callback usingcancelAnimationFrame(). This method is comparable to theWindow.requestAnimationFrame() method.

requestHitTestSource()Experimental

Requests anXRHitTestSource object that handles hit test subscription.

requestHitTestSourceForTransientInput()Experimental

Requests anXRTransientInputHitTestSource object that handles hit test subscription for a transient input source.

requestLightProbe()Experimental

Requests anXRLightProbe that estimates lighting information at a given point in the user's environment.

requestReferenceSpace()Experimental

Requests that a newXRReferenceSpace of the specified type be created. Returns a promise which resolves with theXRReferenceSpace orXRBoundedReferenceSpace which was requested, or throws aNotSupportedErrorDOMException if the requested space type isn't supported by the device.

updateRenderState()Experimental

Updates the properties of the session's render state.

Events

The following events are delivered toXRSession objects.

endExperimental

Sent to theXRSession object after the WebXR session has ended and all hardware-related functions have completed. The event is represented by an object of typeXRSessionEvent. Also available through theonend event handler property.

inputsourceschangeExperimental

An event of typeXRInputSourcesChangeEvent sent to theXRSession when the list of active XR input sources has changed. Also available through theoninputsourceschange event handler property.

selectExperimental

An event of typeXRInputSourceEvent which is sent to the session when one of the session's input sources has successfully completed aprimary action. This generally corresponds to the user pressing a trigger, touchpad, or button, speaks a command, or performs a recognizable gesture. Theselect event is sent after theselectstart event is sent and immediately before theselectend event is sent. Ifselect isnot sent, then the select action was aborted before being completed. Also available through theonselect event handler property.

selectendExperimental

An event of typeXRInputSourceEvent which gets sent to the session object when one of its input devices finishes its primary action or gets disconnected while in the process of handling a primary action. For example: for button or trigger actions, this means the button has been released; for spoken commands, it means the user has finished speaking. This is the last of the threeselect* events to be sent. Also available through theonselectend event handler property.

selectstartExperimental

An event of typeXRInputSourceEvent which is sent to the session object when one of its input devices is first engaged by the user in such a way as to cause the primary action to begin. This is the first of thesession* event to be sent. Also available through theonselectstart event handler property.

squeezeExperimental

AnXRInputSourceEvent sent to indicate that aprimary squeeze action has successfully completed. This indicates that the device being squeezed has been released, and may represent dropping a grabbed object, for example. It is sent immediately before thesqueezeend event is sent to indicate that the squeeze action is over. Also available through theonsqueeze event handler property.

squeezeendExperimental

AnXRInputSourceEvent sent to theXRSession when theprimary squeeze action ends, whether or not the action was successful. Also available using theonsqueezeend event handler property.

squeezestartExperimental

An event of typeXRInputSourceEvent which is sent to theXRSession when the user initially squeezes a squeezable controller. This may be, for example, a trigger which is used to represent grabbing objects, or might represent actual squeezing when wearing a haptic glove. Also available through theonsqueezestart event handler property.

visibilitychangeExperimental

AnXRSessionEvent which is sent to the session when its visibility state as indicated by thevisibilityState changes. Also available through theonvisibilitychange event handler property.

Example

This example establishes a newXRSession ininline mode so that it can be displayed within an HTML element, avoiding the need for a dedicated AR or VR viewing device such as a headset.

js
const XR = navigator.xr;if (XR) {  XR.requestSession("inline").then((xrSession) => {    xrSession.requestReferenceSpace("local").then((xrReferenceSpace) => {      xrSession.requestAnimationFrame((time, xrFrame) => {        const viewer = xrFrame.getViewerPose(xrReferenceSpace);        gl.bindFramebuffer(xrWebGLLayer.framebuffer);        for (const xrView of viewer.views) {          const xrViewport = xrWebGLLayer.getViewport(xrView);          gl.viewport(            xrViewport.x,            xrViewport.y,            xrViewport.width,            xrViewport.height,          );        }      });    });  });} else {  /* WebXR is not available */}

Specifications

Specification
WebXR Device API
# xrsession-interface

Browser compatibility

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp