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
getReflectionCubeMap(lightProbe)
Parameters
lightProbe
-
An
XRLightProbe
object returned by callingXRSession.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.
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