XRWebGLDepthInformation:texture 属性

实验性: 这是一个 实验性技术
在生产环境中使用之前,请仔细查看 浏览器兼容性表

XRWebGLDepthInformation 接口的只读texture 属性是一个 WebGLTexture,其中包含深度缓冲区信息作为不透明纹理。

一个 WebGLTexture

示例

使用 XRWebGLBinding.getDepthInformation() 获取 GPU 深度信息。返回的 XRWebGLDepthInformation 对象将包含 texture 缓冲区,然后可以将其绑定到纹理,并将深度缓冲区信息提供给 WebGL 片段着色器。

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);

规范

规范
WebXR 深度感知模块
# dom-xrwebgldepthinformation-texture

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅