W3cubDocs

/Web APIs

XRSession: depthDataFormat property

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

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

Browser compatibility

Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox for Android Opera Android Safari on IOS Samsung Internet
depthDataFormat 90 90 No No 76 No No 90 No 64 No 15.0

© 2005–2023 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/XRSession/depthDataFormat