WEBGL_depth_texture 扩展

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

WEBGL_depth_texture 扩展是 WebGL API 的一部分,它定义了二维深度纹理和深度-模板纹理。

可以使用 WebGLRenderingContext.getExtension() 方法来访问 WebGL 扩展。有关更多信息,请参阅 WebGL 教程中的 使用扩展

注意:此扩展仅适用于 WebGL1 上下文。在 WebGL2 中,此扩展的功能默认在 WebGL2 上下文中可用。WebGL2 中的常量是 gl.UNSIGNED_INT_24_8

常量

此扩展添加了一个新常量

ext.UNSIGNED_INT_24_8_WEBGL

24 位深度纹理数据的无符号整数类型。

扩展的方法

此扩展扩展了 WebGLRenderingContext.texImage2D()

  • formatinternalformat 参数现在接受 gl.DEPTH_COMPONENTgl.DEPTH_STENCIL
  • type 参数现在接受 gl.UNSIGNED_SHORTgl.UNSIGNED_INText.UNSIGNED_INT_24_8_WEBGL
  • pixels 参数现在接受 Uint16ArrayUint32Array 对象。

此扩展扩展了 WebGLRenderingContext.framebufferTexture2D()

  • attachment 参数现在接受 gl.DEPTH_STENCIL_ATTACHMENT

示例

js
const ext = gl.getExtension("WEBGL_depth_texture");

gl.texImage2D(
  gl.TEXTURE_2D,
  0,
  gl.DEPTH_COMPONENT,
  512,
  512,
  0,
  gl.DEPTH_COMPONENT,
  gl.UNSIGNED_SHORT,
  null,
);

规范

规范
WebGL WEBGL_depth_texture Khronos 批准的扩展规范

浏览器兼容性

另见