WebGLRenderingContext: texSubImage2D() Methode

Hinweis: Diese Funktion ist in Web Workers verfügbar.

Die WebGLRenderingContext.texSubImage2D()-Methode der WebGL API legt ein Subrechteck der aktuellen Textur fest.

Syntax

js
// WebGL1
texSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels) // pixels is a TypedArray or a DataView
texSubImage2D(target, level, xoffset, yoffset, format, type, pixels)

// WebGL2
texSubImage2D(target, level, xoffset, yoffset, width, height, format, type, offset)
texSubImage2D(target, level, xoffset, yoffset, width, height, format, type, source)
texSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels, srcOffset)

Parameter

target

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

  • gl.TEXTURE_2D: Eine zweidimensionale Textur.
  • gl.TEXTURE_CUBE_MAP_POSITIVE_X: Positive X-Seite für eine cube-gemappte Textur.
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_X: Negative X-Seite für eine cube-gemappte Textur.
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Y: Positive Y-Seite für eine cube-gemappte Textur.
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Y: Negative Y-Seite für eine cube-gemappte Textur.
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Z: Positive Z-Seite für eine cube-gemappte Textur.
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Z: Negative Z-Seite für eine cube-gemappte Textur.
level

Ein GLint, der die Detailstufe angibt. Stufe 0 ist die Basisbildstufe und Stufe n ist die n-te Mipmap-Reduktionsstufe.

xoffset

Ein GLint, der die untere linke Texel-x-Koordinate einer rechteckigen Subregion der Texturmatrix mit width Breite und height Höhe angibt.

yoffset

Ein GLint, der die untere linke Texel-y-Koordinate einer rechteckigen Subregion der Texturmatrix mit width Breite und height Höhe angibt.

width

Ein GLsizei, der die Breite der Textur in Texeln angibt.

height

Ein GLsizei, der die Höhe der Textur in Texeln angibt.

format

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

  • gl.ALPHA: Verwirft die roten, grünen und blauen Komponenten und liest die Alpha-Komponente.
  • gl.RGB: Verwirft die Alpha-Komponenten und liest die roten, grünen und blauen Komponenten.
  • gl.RGBA: Rote, grüne, blaue und Alpha-Komponenten werden aus dem Farb-Buffer gelesen.
  • gl.LUMINANCE: Jede Farbkomponente ist eine Luminanzkomponente, Alpha ist 1.0.
  • gl.LUMINANCE_ALPHA: Jede Komponente ist eine Luminanz-/Alpha-Komponente.

Bei Verwendung der EXT_sRGB Erweiterung:

  • ext.SRGB_EXT
  • ext.SRGB_ALPHA_EXT

Bei Verwendung eines WebGL 2 Kontext, sind zusätzlich die folgenden Werte verfügbar:

  • gl.RED
  • gl.RG
  • gl.RED_INTEGER
  • gl.RG_INTEGER
  • gl.RGB_INTEGER
  • gl.RGBA_INTEGER
type

Ein GLenum, der 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.

Bei Verwendung der OES_texture_float Erweiterung:

  • gl.FLOAT

Bei Verwendung der OES_texture_half_float Erweiterung:

  • gl.HALF_FLOAT_OES

Bei Verwendung eines WebGL 2 Kontext, sind zusätzlich die folgenden Werte verfügbar:

  • 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:

offset

(Nur WebGL 2) Ein GLintptr Byte-Offset in den WebGLBuffer's Datenspeicher. Wird verwendet, um Daten auf die aktuell gebundene WebGLTexture vom an PIXEL_UNPACK_BUFFER gebundenen WebGLBuffer hochzuladen.

Rückgabewert

Keiner (undefined).

Beispiele

js
gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, gl.RGBA, gl.UNSIGNED_BYTE, image);

Spezifikationen

Specification
WebGL Specification
# TEXSUBIMAGE2D
WebGL 2.0 Specification
# 3.7.6

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch