WebGL2RenderingContext: texSubImage3D() 方法

Baseline 广泛可用 *

此功能已成熟,并可在多种设备和浏览器版本上运行。自 2021 年 9 月起,所有浏览器均已支持此功能。

* 此特性的某些部分可能存在不同级别的支持。

注意:此功能在 Web Workers 中可用。

WebGL2RenderingContext 接口的 texSubImage3D() 方法(来自 WebGL API)用于指定纹理图像的一个三维子矩形。

语法

js
texSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, srcData)
texSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, srcData, srcOffset)
texSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, source)
texSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, offset)

参数

目标

一个 GLenum,指定活动纹理的绑定点(目标)。可能的值有:

  • gl.TEXTURE_3D:三维纹理。
  • gl.TEXTURE_2D_ARRAY:二维数组纹理。
level

一个 GLint,指定细节级别。级别 0 是基本图像级别,级别 n 是第 n 个 mipmap 缩减级别。

xoffset

一个 GLint,指定纹理图像内的 x 偏移量。

yoffset

一个 GLint,指定纹理图像内的 y 偏移量。

zoffset

一个 GLint,指定纹理图像内的 z 偏移量。

width

一个 GLsizei,指定纹理的宽度(以 texel 为单位)。

height

一个 GLsizei,指定纹理的高度(以 texel 为单位)。

depth

一个 GLsizei,指定纹理的深度/TEXTURE_2D_ARRAY 中纹理的数量。

格式(format)

一个 GLenum,指定原始纹素数据中每个整数元素应如何解释为颜色分量。

type

一个 GLenum,指定原始纹素数据中每个整数元素的大小。有关 `format` 和 `type` 的可用组合,请参阅 WebGLRenderingContext.texSubImage2D()

纹理源可以通过三种方式之一提供:使用 `srcData` 和 `srcOffset` 从(可能共享的)ArrayBuffer 提供;从 DOM 像素 `source` 提供;或使用 `offset` 从 `gl.PIXEL_UNPACK_BUFFER` 提供。

srcData

包含压缩纹理数据的 TypedArrayDataView。其类型必须与 `type` 参数匹配;请参阅 WebGLRenderingContext.texImage2D()

srcOffset 可选

一个指定从 `srcData` 开始读取的索引的整数。默认为 `0`。

source

从 DOM 像素源读取,它可以是以下之一:

offset

一个 GLintptr,指定绑定到 `gl.PIXEL_UNPACK_BUFFER` 的缓冲区中的起始地址。

返回值

无(undefined)。

示例

js
gl.texSubImage3D(
  gl.TEXTURE_3D,
  0,
  0,
  0,
  0,
  image.width,
  image.height,
  1,
  gl.RGBA,
  gl.UNSIGNED_BYTE,
  image,
);

规范

规范
WebGL 2.0 规范
# 3.7.6

浏览器兼容性

另见