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

BCD tables only load in the browser

See also