WebGL2RenderingContext: texSubImage3D()-Methode

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021.

Hinweis: Dieses Feature ist verfügbar in Web Workers.

Die WebGL2RenderingContext.texSubImage3D()-Methode der WebGL API gibt ein Teilrechteck der aktuellen Textur an.

Syntax

js
texSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels)
texSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, offset)
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)

Parameter

target

Ein GLenum, das den Bindungspunkt (Ziel) der aktiven Textur angibt. Mögliche Werte:

  • gl.TEXTURE_3D: Eine dreidimensionale Textur.
  • gl.TEXTURE_2D_ARRAY: Eine zweidimensionale Array-Textur.
level

Ein GLint, das die Detailstufe angibt. Stufe 0 ist die Basisebene des Bildes und Stufe n ist die n-te Mipmap-Reduktionsstufe.

xoffset

Ein GLint, das den x-Versatz innerhalb des Texturbildes angibt.

yoffset

Ein GLint, das den y-Versatz innerhalb des Texturbildes angibt.

zoffset

Ein GLint, das den z-Versatz innerhalb des Texturbildes angibt.

width

Ein GLsizei, das die Breite der Textur angibt.

height

Ein GLsizei, das die Höhe der Textur angibt.

depth

Ein GLsizei, das die Tiefe der Textur angibt.

format

Ein GLenum, das das Format der Texeldaten angibt. Mögliche Werte:

  • gl.ALPHA: Verwift die roten, grünen und blauen Komponenten und liest die Alphakomponente.
  • gl.RGB: Verwift die Alphakomponenten und liest die roten, grünen und blauen Komponenten.
  • gl.RGBA: Rot, Grün, Blau und Alphakomponenten werden aus dem Farb-Puffer gelesen.
  • gl.LUMINANCE: Jede Farbkomponente ist eine Luminanzkomponente, Alpha ist 1,0.
  • gl.LUMINANCE_ALPHA: Jede Komponente ist eine Luminanz/Alpha-Komponente.
  • gl.R8
  • gl.R16F
  • gl.R32F
  • gl.R8UI
  • gl.RG8
  • gl.RG16F
  • gl.RG32F
  • gl.RGUI
  • gl.RGB8
  • gl.SRGB8
  • gl.RGB565
  • gl.R11F_G11F_B10F
  • gl.RGB9_E5
  • gl.RGB16F
  • gl.RGB32F
  • gl.RGB8UI
  • gl.RGBA8
  • gl.SRGB_ALPHA8
  • gl.RGB5_A1
  • gl.RGBA4444
  • gl.RGBA16F
  • gl.RGBA32F
  • gl.RGBA8UI
type

Ein GLenum, das den Datentyp der Texeldaten angibt. Mögliche Werte:

  • gl.UNSIGNED_BYTE: 8 Bits pro Kanal für gl.RGBA
  • gl.UNSIGNED_SHORT_5_6_5: 5 rote Bits, 6 grüne Bits, 5 blaue Bits.
  • gl.UNSIGNED_SHORT_4_4_4_4: 4 rote Bits, 4 grüne Bits, 4 blaue Bits, 4 Alpha-Bits.
  • gl.UNSIGNED_SHORT_5_5_5_1: 5 rote Bits, 5 grüne Bits, 5 blaue Bits, 1 Alpha-Bit.
  • gl.BYTE
  • gl.UNSIGNED_SHORT
  • gl.SHORT
  • gl.UNSIGNED_INT
  • gl.INT
  • gl.HALF_FLOAT
  • gl.FLOAT
  • gl.UNSIGNED_INT_2_10_10_10_REV
  • gl.UNSIGNED_INT_10F_11F_11F_REV
  • gl.UNSIGNED_INT_5_9_9_9_REV
  • gl.UNSIGNED_INT_24_8
  • gl.FLOAT_32_UNSIGNED_INT_24_8_REV (Pixel müssen null sein)
pixels

Eines der folgenden Objekte kann als Pixelquelle für die Textur verwendet werden:

srcData

Ein TypedArray oder ein DataView-Objekt.

offset

Ein GLintptr-Byte-Versatz in den Datenspeicher des WebGLBuffer. Wird verwendet, um Daten in die aktuell gebundene WebGLTexture vom WebGLBuffer, das an das Ziel PIXEL_UNPACK_BUFFER gebunden ist, hochzuladen.

Rückgabewert

Keiner (undefined).

Beispiele

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

Spezifikationen

Specification
WebGL 2.0 Specification
# 3.7.6

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch