WebGLRenderingContext: texSubImage2D() Methode

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

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

Die WebGLRenderingContext.texSubImage2D()-Methode der WebGL API gibt ein Unterrechteck der aktuellen Textur an.

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, das 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 Würfelkartierungstextur.
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_X: Negative X-Seite für eine Würfelkartierungstextur.
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Y: Positive Y-Seite für eine Würfelkartierungstextur.
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Y: Negative Y-Seite für eine Würfelkartierungstextur.
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Z: Positive Z-Seite für eine Würfelkartierungstextur.
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Z: Negative Z-Seite für eine Würfelkartierungstextur.
level

Ein GLint, das das Detailniveau angibt. Level 0 ist das Basisbildniveau und Level n ist das n-te Mipmap-Reduktionsniveau.

xoffset

Ein GLint, das die x-Koordinate des unteren linken Texels einer Breite-weiten und Höhe-weiten rechteckigen Unterregion des Textur-Arrays angibt.

yoffset

Ein GLint, das die y-Koordinate des unteren linken Texels einer Breite-weiten und Höhe-weiten rechteckigen Unterregion des Textur-Arrays angibt.

width

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

height

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

format

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

  • gl.ALPHA: Verwirft die roten, grünen und blauen Komponenten und liest die Alphakomponente.
  • gl.RGB: Verwirft die Alphakomponenten und liest die roten, grünen und blauen Komponenten.
  • gl.RGBA: Rote, grüne, blaue 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-/Alphakomponente.

Bei Verwendung der EXT_sRGB Erweiterung:

  • ext.SRGB_EXT
  • ext.SRGB_ALPHA_EXT

Bei Verwendung eines WebGL 2 Kontextes sind zusätzlich folgende Werte verfügbar:

  • gl.RED
  • gl.RG
  • gl.RED_INTEGER
  • gl.RG_INTEGER
  • gl.RGB_INTEGER
  • gl.RGBA_INTEGER
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 Alphabits.
  • gl.UNSIGNED_SHORT_5_5_5_1: 5 rote Bits, 5 grüne Bits, 5 blaue Bits, 1 Alphabit.

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 Kontextes sind zusätzlich folgende 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 (Pixels 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 Datenbereich des WebGLBuffer. Wird verwendet, um Daten an die derzeit gebundene WebGLTexture vom gebundenen WebGLBuffer zum PIXEL_UNPACK_BUFFER Ziel 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

Siehe auch