The data is stored in row-major format, without padding, with each entry corresponding to distance from the view's near plane to the users' environment, in unspecified units. The size of each data entry and the type is determined by
depthDataFormat. The values can be converted from unspecified units to meters by multiplying them by
normDepthBufferFromNormView property can be used to transform from normalized view coordinates (an origin in the top left corner of the view, with X axis growing to the right, and Y axis growing downward) into the depth buffer's coordinate system.
XRFrame.getDepthInformation() to obtain depth information. The returned
XRCPUDepthInformation object will contain the
For CPU depth information and a buffer that has "luminance-alpha" format:
const uint16 = new Uint16Array(depthInfo.data); const index = column + row * depthInfo.width; const depthInMeters = uint16[index] * depthInfo.rawValueToMeters;
Float32Array for a "float32" data format.)
Note that the depth in meters is in depth-buffer coordinates. Additional steps are needed to convert them to normalized view coordinates, or the
XRCPUDepthInformation.getDepthInMeters() method can be used.
|WebXR Depth Sensing Module |
BCD tables only load in the browser