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
// 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 mitwidth
Breite undheight
Höhe angibt. yoffset
-
Ein
GLint
, der die untere linke Texel-y-Koordinate einer rechteckigen Subregion der Texturmatrix mitwidth
Breite undheight
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ürgl.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üssennull
sein)
pixels
-
Eines der folgenden Objekte kann als Pixelquelle für die Textur verwendet werden:
Uint8Array
(Muss verwendet werden, wenntype
gl.UNSIGNED_BYTE
ist)Uint16Array
(Muss verwendet werden, wenntype
entwedergl.UNSIGNED_SHORT_5_6_5
,gl.UNSIGNED_SHORT_4_4_4_4
,gl.UNSIGNED_SHORT_5_5_5_1
oderext.HALF_FLOAT_OES
ist)Float32Array
(Muss verwendet werden, wenntype
gl.FLOAT
ist)ImageData
,HTMLImageElement
,HTMLCanvasElement
,HTMLVideoElement
,ImageBitmap
.
offset
-
(Nur WebGL 2) Ein
GLintptr
Byte-Offset in denWebGLBuffer
's Datenspeicher. Wird verwendet, um Daten auf die aktuell gebundeneWebGLTexture
vom anPIXEL_UNPACK_BUFFER
gebundenenWebGLBuffer
hochzuladen.
Rückgabewert
Keiner (undefined
).
Beispiele
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
WebGLRenderingContext.createTexture()
WebGLRenderingContext.bindTexture()
WebGLRenderingContext.texImage2D()
WebGLRenderingContext.compressedTexImage2D()
WebGLRenderingContext.copyTexImage2D()
WebGLRenderingContext.getTexParameter()
OES_texture_float
OES_texture_half_float
EXT_sRGB
EXT_texture_norm16