Class WebXRSessionManager
Hierarchy
- WebXRSessionManager
Implements
Index
Constructors
Properties
Accessors
Methods
- dispose
- exitXRAsync
- get
Render Target Texture For Eye - get
Render Target Texture For View - get
WebXRRender Target - initialize
Async - initialize
Session Async - is
Session Supported Async - reset
Reference Space - run
InXRFrame - runXRRender
Loop - set
Reference Space Type Async - try
Set Viewport For View - update
Render State - update
Render State Async - update
Target Frame Rate - Is
Session Supported Async
Constructors
constructor
Constructs a WebXRSessionManager, this must be initialized within a user action before usage
Parameters
scene: Scene
The scene which the session should be created for
Returns WebXRSessionManager
Properties
base Reference SpaceSearch playground for baseReferenceSpace
The base reference space from which the session started. good if you want to reset your reference space
current FrameSearch playground for currentFrame
Current XR frame
current TimestampSearch playground for currentTimestamp
WebXR timestamp updated every frame
default Height CompensationSearch playground for defaultHeightCompensation
Used just in case of a failure to initialize an immersive session. The viewer reference space is compensated using this height, creating a kind of "viewer-floor" reference space
inXRFrame LoopSearch playground for inXRFrameLoop
Are we currently in the XR loop?
inXRSessionSearch playground for inXRSession
Are we in an XR session?
onXRFrame ObservableSearch playground for onXRFrameObservable
Fires every time a new xrFrame arrives which can be used to update the camera
onXRReference Space ChangedSearch playground for onXRReferenceSpaceChanged
Fires when the reference space changed
onXRSession EndedSearch playground for onXRSessionEnded
Fires when the xr session is ended either by the device or manually done
onXRSession InitSearch playground for onXRSessionInit
Fires when the xr session is initialized: right after requestSession was called and returned with a successful result
sceneSearch playground for scene
The scene which the session should be created for
sessionSearch playground for session
Underlying xr session
viewer Reference SpaceSearch playground for viewerReferenceSpace
The viewer (head position) reference space. This can be used to get the XR world coordinates or get the offset the player is currently at.
Accessors
current Frame Rate
The current frame rate as reported by the device
Returns undefined | number
fixed Foveation
Get the fixed foveation currently set, as specified by the webxr specs If this returns null, then fixed foveation is not supported
Returns Nullable<number>
Set the fixed foveation to the specified value, as specified by the webxr specs This value will be normalized to be between 0 and 1, 1 being max foveation, 0 being no foveation
Parameters
value: Nullable<number>
Returns void
is Fixed Foveation Supported
Check if fixed foveation is supported on this device
Returns boolean
is Native
Returns true if Babylon.js is using the BabylonNative backend, otherwise false
Returns boolean
reference Space
The current reference space used in this session. This reference space can constantly change! It is mainly used to offset the camera's position.
Returns XRReferenceSpace
Set a new reference space and triggers the observable
Parameters
newReferenceSpace: XRReferenceSpace
Returns void
session Mode
The mode for the managed XR session
Returns XRSessionMode
supported Frame Rates
A list of supported frame rates (only available in-session!
Returns undefined | Float32Array
Methods
disposeSearch playground for dispose
Disposes of the session manager This should be called explicitly by the dev, if required.
Returns void
exitXRAsyncSearch playground for exitXRAsync
Stops the xrSession and restores the render loop
Returns Promise<void>
Promise which resolves after it exits XR
get Render Target Texture For EyeSearch playground for getRenderTargetTextureForEye
Gets the correct render target texture to be rendered this frame for this eye
Parameters
eye: XREye
the eye for which to get the render target
Returns Nullable<RenderTargetTexture>
the render target for the specified eye or null if not available
get Render Target Texture For ViewSearch playground for getRenderTargetTextureForView
Gets the correct render target texture to be rendered this frame for this view
Parameters
view: XRView
the view for which to get the render target
Returns Nullable<RenderTargetTexture>
the render target for the specified view or null if not available
get WebXRRender TargetSearch playground for getWebXRRenderTarget
Creates a WebXRRenderTarget object for the XR session
Parameters
Optional options: WebXRManagedOutputCanvasOptions
optional options to provide when creating a new render target
Returns WebXRRenderTarget
a WebXR render target to which the session can render
initialize AsyncSearch playground for initializeAsync
Initializes the manager After initialization enterXR can be called to start an XR session
Returns Promise<void>
Promise which resolves after it is initialized
initialize Session AsyncSearch playground for initializeSessionAsync
Initializes an xr session
Parameters
Optional xrSessionMode: XRSessionMode
mode to initialize
Optional xrSessionInit: XRSessionInit
defines optional and required values to pass to the session builder
Returns Promise<XRSession>
a promise which will resolve once the session has been initialized
is Session Supported AsyncSearch playground for isSessionSupportedAsync
Checks if a session would be supported for the creation options specified
Parameters
sessionMode: XRSessionMode
session mode to check if supported eg. immersive-vr
Returns Promise<boolean>
A Promise that resolves to true if supported and false if not
reset Reference SpaceSearch playground for resetReferenceSpace
Resets the reference space to the one started the session
Returns void
run InXRFrameSearch playground for runInXRFrame
Run a callback in the xr render loop
Parameters
callback: (() => void)
the callback to call when in XR Frame
Returns void
Optional ignoreIfNotInSession: boolean
if no session is currently running, run it first thing on the next session
Returns void
runXRRender LoopSearch playground for runXRRenderLoop
Starts rendering to the xr layer
Returns void
set Reference Space Type AsyncSearch playground for setReferenceSpaceTypeAsync
Sets the reference space on the xr session
Parameters
Optional referenceSpaceType: XRReferenceSpaceType
space to set
Returns Promise<XRReferenceSpace>
a promise that will resolve once the reference space has been set
try Set Viewport For ViewSearch playground for trySetViewportForView
Attempts to set the framebuffer-size-normalized viewport to be rendered this frame for this view. In the event of a failure, the supplied viewport is not updated.
Parameters
viewport: Viewport
the viewport to which the view will be rendered
view: XRView
the view for which to set the viewport
Returns boolean
whether the operation was successful
update Render StateSearch playground for updateRenderState
Updates the render state of the session
Parameters
state: XRRenderStateInit
state to set
Returns void
update Render State AsyncSearch playground for updateRenderStateAsync
Updates the render state of the session. Note that this is deprecated in favor of WebXRSessionManager.updateRenderState().
Parameters
state: XRRenderState
state to set
Returns Promise<void>
a promise that resolves once the render state has been updated
update Target Frame RateSearch playground for updateTargetFrameRate
Set the framerate of the session.
Parameters
rate: number
the new framerate. This value needs to be in the supportedFrameRates array
Returns Promise<void>
a promise that resolves once the framerate has been set
Static Is Session Supported AsyncSearch playground for IsSessionSupportedAsync
Returns a promise that resolves with a boolean indicating if the provided session mode is supported by this browser
Parameters
sessionMode: XRSessionMode
defines the session to test
Returns Promise<boolean>
a promise with boolean as final value
Manages an XRSession to work with Babylon's engine
https://doc.babylonjs.com/how_to/webxr_session_manager