XRWebGLBinding: getReflectionCubeMap() method

Limited availability

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

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

The getReflectionCubeMap() method of the XRWebGLBinding interface returns a WebGLTexture object containing a reflection cube map texture.

The texture format is specified by the session's reflectionFormat. See the options parameter on XRSession.requestLightProbe() and XRSession.preferredReflectionFormat for more details. By default, the srgba8 format is used. When using a rgba16f format, you need to be within a WebGL 2.0 context or enable the OES_texture_half_float extension within WebGL 1.0 contexts.

Syntax

js
getReflectionCubeMap(lightProbe)

Parameters

lightProbe

An XRLightProbe object returned by calling XRSession.requestLightProbe().

Return value

A WebGLTexture object.

Examples

You typically call getReflectionCubeMap() whenever the reflectionchange event fires on a light probe to retrieve an updated cube map. This is less expensive than retrieving lighting information with every XRFrame.

If the rgba16f format is used, enable the OES_texture_half_float extension within WebGL 1.0 contexts.

js
const glBinding = new XRWebGLBinding(xrSession, gl);
gl.getExtension("OES_texture_half_float"); // if rgba16f is the preferredReflectionFormat

xrSession.requestLightProbe().then((lightProbe) => {
  lightProbe.addEventListener("reflectionchange", () => {
    glBinding.getReflectionCubeMap(lightProbe);
  });
});

Specifications

Specification
WebXR Lighting Estimation API Level 1
# dom-xrwebglbinding-getreflectioncubemap

Browser compatibility

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
getReflectionCubeMap
Experimental

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support
Experimental. Expect behavior to change in the future.

See also