XRWebGLDepthInformation: texture-Eigenschaft

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig, bevor Sie diese produktiv verwenden.

Die schreibgeschützte texture-Eigenschaft des XRWebGLDepthInformation-Interfaces ist ein WebGLTexture, der Tiefenpufferinformationen als eine undurchsichtige Textur enthält.

Wert

Beispiele

Verwenden Sie XRWebGLBinding.getDepthInformation(), um die GPU-Tiefeninformation abzurufen. Das zurückgegebene XRWebGLDepthInformation-Objekt enthält den texture-Puffer, der dann an eine Textur gebunden werden kann, sodass die Tiefenpufferinformationen einem WebGL-Fragment-Shader zur Verfügung gestellt werden können.

js
const depthInfo = glBinding.getDepthInformation(view);
const uvTransform = depthInfo.normDepthBufferFromNormView.matrix;

const u_DepthTextureLocation = gl.getUniformLocation(program, "u_DepthTexture");
const u_UVTransformLocation = gl.getUniformLocation(program, "u_UVTransform");
const u_RawValueToMeters = gl.getUniformLocation(program, "u_RawValueToMeters");

gl.bindTexture(gl.TEXTURE_2D, depthInfo.texture);
gl.activeTexture(gl.TEXTURE0);
gl.uniform1i(u_DepthTextureLocation, 0);

// UV transform to correctly index into the depth map
gl.uniformMatrix4fv(u_UVTransformLocation, false, uvTransform);

// scaling factor to convert from the raw number to meters
gl.uniform1f(u_RawValueToMeters, depthInfo.rawValueToMeters);

Spezifikationen

Specification
WebXR Depth Sensing Module
# dom-xrwebgldepthinformation-texture

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch