XRLightEstimate: sphericalHarmonicsCoefficients property

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

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