WebGL2RenderingContext: texStorage2D() 方法

Baseline 已廣泛支援

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

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

WebGL2RenderingContext 物件的 texStorage2D() 方法,是 WebGL API 的一部分,用於指定二維紋理儲存的所有層級。

語法

js
texStorage2D(target, levels, internalformat, width, height)

引數

目標

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

  • gl.TEXTURE_2D:一個二維紋理。
  • gl.TEXTURE_CUBE_MAP:立方體貼圖紋理。
levels

一個 GLint,指定紋理層級的數量。

internalformat

一個 GLenum,指定紋理儲存格式。可能的值

  • gl.R8
  • gl.R8_SNORM
  • gl.R16F
  • gl.R32F
  • gl.R8UI
  • gl.R8I
  • gl.R16UI
  • gl.R16I
  • gl.R32UI
  • gl.R32I
  • gl.RG8
  • gl.RG8_SNORM
  • gl.RG16F
  • gl.RG32F
  • gl.RG8UI
  • gl.RG8I
  • gl.RG16UI
  • gl.RG16I
  • gl.RG32UI
  • gl.RG32I
  • gl.RGB8
  • gl.SRGB8
  • gl.RGB565
  • gl.RGB8_SNORM
  • gl.R11F_G11F_B10F
  • gl.RGB9_E5
  • gl.RGB16F
  • gl.RGB32F
  • gl.RGB8UI
  • gl.RGB8I
  • gl.RGB16UI
  • gl.RGB16I
  • gl.RGB32UI
  • gl.RGB32I
  • gl.RGBA8
  • gl.SRGB8_ALPHA8
  • gl.RGBA8_SNORM
  • gl.RGB5_A1
  • gl.RGBA4
  • gl.RGB10_A2
  • gl.RGBA16F
  • gl.RGBA32F
  • gl.RGBA8UI
  • gl.RGBA8I
  • gl.RGB10_A2UI
  • gl.RGBA16UI
  • gl.RGBA16I
  • gl.RGBA32UI
  • gl.RGBA32I
  • gl.DEPTH_COMPONENT16
  • gl.DEPTH_COMPONENT24
  • gl.DEPTH_COMPONENT32F
  • gl.DEPTH24_STENCIL8
  • gl.DEPTH32F_STENCIL8

與 OpenGL 3.0 不同,WebGL 2不支援以下 ETC2 和 EAC 壓縮紋理格式(請參閱 WebGL 2 規範的 第 5.37 節)。您可能可以透過 WEBGL_compressed_texture_etc 擴充套件來啟用它們。

  • gl.COMPRESSED_R11_EAC
  • gl.COMPRESSED_SIGNED_R11_EAC
  • gl.COMPRESSED_RG11_EAC
  • gl.COMPRESSED_SIGNED_RG11_EAC
  • gl.COMPRESSED_RGB8_ETC2
  • gl.COMPRESSED_SRGB8_ETC2
  • gl.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2
  • gl.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2
  • gl.COMPRESSED_RGBA8_ETC2_EAC
  • gl.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC

有關這些格式的描述,請參閱 WebGLRenderingContext.texImage2D()。由於 texStorage2D 實際上不指定緩衝區源,因此 formattype 引數無關緊要,可以被認為是對應於 internalformat 的任何有效值。

width

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

height

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

返回值

無(undefined)。

示例

js
gl.texStorage2D(gl.TEXTURE_2D, 1, gl.RGB8, 256, 256);

規範

規範
WebGL 2.0 規範
# 3.7.6

瀏覽器相容性

另見