WebGL2RenderingContext: compressedTexSubImage3D() 方法

Baseline 已廣泛支援

此功能已成熟,並可在多種裝置和瀏覽器版本上執行。自 2021 年 9 月起,所有瀏覽器均已支援此功能。

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

compressedTexSubImage3D()WebGL APIWebGL2RenderingContext 介面的一個方法,用於為壓縮格式的紋理影像指定一個三維子矩形。

壓縮影像格式僅透過一些 WebGL 擴充套件 提供。

語法

js
compressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, offset)

compressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, srcData)
compressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, srcData, srcOffset)
compressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, srcData, srcOffset, srcLengthOverride)

引數

目標

一個 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,指定紋理單元(texels)中壓縮紋理的寬度。

height

一個 GLsizei,指定紋理單元(texels)中壓縮紋理的高度。

depth

一個 GLsizei,指定紋理的深度/TEXTURE_2D_ARRAY 中紋理的數量。

格式(format)

一個 GLenum,指定壓縮影像格式。可能值的列表,請參閱 WebGLRenderingContext.compressedTexImage2D()

紋理源可以透過兩種方式提供:使用 srcDatasrcOffsetsrcLengthOverrideArrayBuffer(可能共享)提供;或者,在 WebGL 2 中,從 gl.PIXEL_UNPACK_BUFFER 使用 imageSizeoffset 提供。

srcData

一個包含壓縮紋理資料的 TypedArrayDataView

srcOffset 可選

一個指定從 `srcData` 開始讀取的索引的整數。預設為 `0`。

srcLengthOverride 可選

一個整數,指定 srcData 中要讀取的元素數量。預設為 srcData.length - srcOffset

imageSize

一個 GLsizei,指定影像資料的大小(以位元組為單位)。

offset

一個 GLintptr,指定繫結到 `gl.PIXEL_UNPACK_BUFFER` 的緩衝區中的起始地址。

返回值

無(undefined)。

示例

js
gl.compressedTexSubImage3D(
  gl.TEXTURE_3D,
  0,
  0,
  0,
  512,
  512,
  512,
  gl.COMPRESSED_R11_EAC,
  textureData,
);

規範

規範
WebGL 2.0 規範
# 3.7.6

瀏覽器相容性

另見