XRSession: depthDataFormat 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 depthDataFormat property of an immersive-ar XRSession describes which depth sensing data format is used.

Value

This property can return the following values:

luminance-alpha

2-byte unsigned integer data buffers (LUMINANCE_ALPHA GLEnum). CPU usage: interpret XRCPUDepthInformation.data as Uint8Array. GPU usage: inspect Luminance and Alpha channels to reassemble single value.

float32

4-byte floating point data buffers (R32F GLEnum). CPU usage: interpret XRCPUDepthInformation.data as Float32Array. GPU usage: inspect Red channel and use the value.

Examples

To request the desired data format, you need to specify a dataFormatPreference when requesting a session using XRSystem.requestSession(). Here, the caller is able to handle both "luminance-alpha" and "float32" formats. The order indicates preference for "luminance-alpha":

js
navigator.xr.requestSession("immersive-ar", {
  requiredFeatures: ["depth-sensing"],
  depthSensing: {
    usagePreference: ["cpu-optimized", "gpu-optimized"],
    formatPreference: ["luminance-alpha", "float32"],
  },
});

To check which data format was selected by the user agent, you can call the depthDataFormat property:

js
console.log(session.depthDataFormat); // either "luminance-alpha" or "float32"

Specifications

Specification
WebXR Depth Sensing Module
# dom-xrsession-depthdataformat

Browser compatibility

desktop mobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
depthDataFormat
Experimental
Chrome – Full support
Chrome 90 (Release date: 2021-04-13)
footnote Full support
Edge – Full support
Edge 90 (Release date: 2021-04-15)
footnote Full support
Firefox – No support
Firefox
footnote No support
Opera – Full support
Opera 76 (Release date: 2021-04-28)
footnote Full support
Safari – No support
Safari
footnote No support
Chrome Android – Full support
Chrome Android 90 (Release date: 2021-04-13)
footnote Full support
Firefox for Android – No support
Firefox for Android
footnote No support
Opera Android – Full support
Opera Android 64 (Release date: 2021-05-25)
footnote Full support
Safari on iOS – No support
Safari on iOS
footnote No support
Samsung Internet – Full support
Samsung Internet 15 (Release date: 2021-08-13)
footnote Full support
WebView Android – No support
WebView Android
footnote No support
WebView on iOS – No support
WebView on iOS
footnote No support

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support
Experimental. Expect behavior to change in the future.