WebGL2RenderingContext:texImage3D() 方法

Baseline 廣泛可用 *

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

* 此特性的某些部分可能存在不同級別的支援。

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

WebGL2RenderingContext 介面的 texImage3D() 方法,屬於 WebGL API,用於指定一個三維紋理影像。

語法

js
texImage3D(target, level, internalformat, width, height, depth, border, format, type, srcData)
texImage3D(target, level, internalformat, width, height, depth, border, format, type, srcData, srcOffset)
texImage3D(target, level, internalformat, width, height, depth, border, format, type, source)
texImage3D(target, level, internalformat, width, height, depth, border, format, type, offset)

引數

目標

一個 GLenum,指定活動紋理的繫結點(目標)。可能的值有:

  • gl.TEXTURE_3D:三維紋理。
  • gl.TEXTURE_2D_ARRAY:二維陣列紋理。
level

一個 GLint,指定細節級別。級別 0 是基本影像級別,級別 n 是第 n 個 mipmap 縮減級別。

internalformat

一個 GLenum,指定紋理載入後應如何儲存。

width

一個 GLsizei,指定紋理的寬度(以 texel 為單位)。

height

一個 GLsizei,指定紋理的高度(以 texel 為單位)。

depth

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

border

一個 GLint,指定邊框的寬度。必須為 0。

格式(format)

一個 GLenum,指定原始紋素資料中每個整數元素應如何解釋為顏色分量。

type

一個 GLenum,指定原始紋素資料中每個整數元素的大小。

internalformatformattype 值必須相互相容。所有有效組合請參見 WebGLRenderingContext.texImage2D()

紋理源可以透過以下三種方式之一提供:使用 srcDatasrcOffsetArrayBuffer(可能已共享)提供;從 DOM 畫素 source 提供;或者使用 offsetgl.PIXEL_UNPACK_BUFFER 提供。

srcData

一個 TypedArrayDataView,包含壓縮後的紋理資料。其型別必須與 type 引數匹配;請參見 WebGLRenderingContext.texImage2D()。當 typeFLOAT_32_UNSIGNED_INT_24_8_REV 時,srcData 必須是 null

srcOffset 可選

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

source

從 DOM 畫素源讀取,它可以是以下之一:

offset

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

返回值

無(undefined)。

示例

js
gl.texImage3D(
  gl.TEXTURE_3D,
  0, // level
  gl.RGBA, // internalFormat
  1, // width
  1, // height
  1, // depth
  0, // border
  gl.RGBA, // format
  gl.UNSIGNED_BYTE, // type
  new Uint8Array([0xff, 0x00, 0x00, 0x00]),
); // data

規範

規範
WebGL 2.0 規範
# 3.7.6

瀏覽器相容性

另見