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.





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

Return value

A WebGLTexture object.


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.

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

xrSession.requestLightProbe().then((lightProbe) => {
  lightProbe.addEventListener('reflectionchange', () => {


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

Browser compatibility

BCD tables only load in the browser

See also