Spec-Zone.ru › Web APIs

WebGLRenderingContext: метод texSubImage2D()

Примечание: Эта функция доступна в Потоках веб.

Метод WebGLRenderingContext.texSubImage2D() API WebGL определяет подпрямоугольник текущей текстуры.

Синтаксис

// 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)

Параметры

target

Значение GLenum, определяющее точку привязки (цель) активной текстуры. Возможные значения:

  • gl.TEXTURE_2D: Двумерная текстура.
  • gl.TEXTURE_CUBE_MAP_POSITIVE_X: Положительная X грань для кубовой текстуры.
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_X: Отрицательная X грань для кубовой текстуры.
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Y: Положительная Y грань для кубовой текстуры.
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Y: Отрицательная Y грань для кубовой текстуры.
  • gl.TEXTURE_CUBE_MAP_POSITIVE_Z: Положительная Z грань для кубовой текстуры.
  • gl.TEXTURE_CUBE_MAP_NEGATIVE_Z: Отрицательная Z грань для кубовой текстуры.
level

Значение GLint, определяющее уровень детализации. Уровень 0 — базовый уровень изображения, уровень n — n-й уровень уменьшения mipmap.

xoffset

Значение GLint, определяющее координату x левого нижнего пикселя прямоугольной под области текстуры размером в width на height пикселей.

yoffset

Значение GLint, определяющее координату y левого нижнего пикселя прямоугольной под области текстуры размером в width на height пикселей.

width

Значение GLsizei, определяющее ширину текстуры в пикселях.

height

Значение GLsizei, определяющее высоту текстуры в пикселях.

format

Значение GLenum, определяющее формат данных пикселей. Возможные значения:

  • gl.ALPHA: Отбрасывает компоненты красного, зелёного и синего и читает альфа-компонент.
  • gl.RGB: Отбрасывает альфа-компоненты и читает компоненты красного, зелёного и синего.
  • gl.RGBA: Компоненты красного, зелёного, синего и альфа читаются из буфера цвета.
  • gl.LUMINANCE: Каждый цветовой компонент — это компонент яркости, альфа — 1.0.
  • gl.LUMINANCE_ALPHA: Каждый компонент — это компонент яркости/альфа.

При использовании расширения EXT_sRGB:

  • ext.SRGB_EXT
  • ext.SRGB_ALPHA_EXT

При использовании контекста WebGL 2, доступны следующие значения:

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

Значение GLenum, определяющее тип данных пикселей. Возможные значения:

  • gl.UNSIGNED_BYTE: 8 бит на канал для gl.RGBA
  • gl.UNSIGNED_SHORT_5_6_5: 5 бит красного, 6 бит зелёного, 5 бит синего.
  • gl.UNSIGNED_SHORT_4_4_4_4: 4 бит красного, 4 бит зелёного, 4 бит синего, 4 бит альфа.
  • gl.UNSIGNED_SHORT_5_5_5_1: 5 бит красного, 5 бит зелёного, 5 бит синего, 1 бит альфа.

При использовании расширения OES_texture_float:

  • gl.FLOAT

При использовании расширения OES_texture_half_float:

  • gl.HALF_FLOAT_OES

При использовании контекста WebGL 2, доступны следующие значения:

  • 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 (пиксели должны быть null)
pixels

В качестве источника пикселей для текстуры можно использовать один из следующих объектов:

  • Uint8Array (необходимо использовать, если type является gl.UNSIGNED_BYTE)
  • Uint16Array (необходимо использовать, если type является либо gl.UNSIGNED_SHORT_5_6_5, gl.UNSIGNED_SHORT_4_4_4_4, gl.UNSIGNED_SHORT_5_5_5_1, или ext.HALF_FLOAT_OES)
  • Float32Array (необходимо использовать, если type является gl.FLOAT)
  • ImageData,
  • HTMLImageElement,
  • HTMLCanvasElement,
  • HTMLVideoElement,
  • ImageBitmap.
offset

(Только WebGL 2) Смещение в байтах WebGLBuffer относительно начала данных. Используется для загрузки данных в текущую привязанную WebGLTexture из WebGLBuffer привязанного к цели PIXEL_UNPACK_BUFFER.

Возвращаемое значение

Ничего (undefined).

Примеры

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

Спецификации

Спецификация
Спецификация WebGL
# TEXSUBIMAGE2D
Спецификация WebGL 2.0
# 3.7.6

Совместимость с браузерами

Рабочие столы Мобильные
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
texSubImage2D 9 12 4 12 5.1 25
4Текстуры из видеоэлементов не поддерживаются. Смотрите баг 1884282.
12 8 1.5 4.4.3

См. также

  • WebGLRenderingContext.createTexture()
  • WebGLRenderingContext.bindTexture()
  • WebGLRenderingContext.texImage2D()
  • WebGLRenderingContext.compressedTexImage2D()
  • WebGLRenderingContext.copyTexImage2D()
  • WebGLRenderingContext.getTexParameter()
  • OES_texture_float
  • OES_texture_half_float
  • EXT_sRGB
  • EXT_texture_norm16

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/texSubImage2D

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API