XRLightEstimate: sphericalHarmonicsCoefficients property

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.

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

The read-only sphericalHarmonicsCoefficients property of the XRLightEstimate interface returns a Float32Array containing 9 spherical harmonics coefficients.

Spherical harmonic lighting is a technique that uses spherical functions instead of standard lighting equations. See Wikipedia for more information.

Value

A Float32Array containing 9 spherical harmonics coefficients. The array contains 27 elements in total, with every 3 elements defining red, green, and blue components for each coefficient.

The first 3 elements must be a valid lighting estimate component; the rest may be 0 due to privacy settings or limitations of the device to provide more data.

Examples

Within an XRFrame loop, you can use the sphericalHarmonicsCoefficients property to light the scene.

js
const lightProbe = await xrSession.requestLightProbe();

// frame loop
function onXRFrame(time, xrFrame) {
  let lightEstimate = xrFrame.getLightEstimate(lightProbe);

  // Render lights using lightEstimate.sphericalHarmonicsCoefficients
}

Specifications

Specification
WebXR Lighting Estimation API Level 1
# dom-xrlightestimate-sphericalharmonicscoefficients

Browser compatibility

BCD tables only load in the browser

See also