Spec-Zone.ru › Web APIs

WebGL2RenderingContext: метод texSubImage3D()

Базовая Широко поддерживается *

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузера. Она доступна во всех браузерах с сентября 2021 года.

* Некоторые части этой функции могут иметь различный уровень поддержки.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

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

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

Синтаксис

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)

Параметры

target

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

  • gl.TEXTURE_3D: Трехмерная текстура.
  • gl.TEXTURE_2D_ARRAY: Двумерная текстура массива.
level

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

xoffset

Тип GLint, определяющий смещение по оси x внутри изображения текстуры.

yoffset

Тип GLint, определяющий смещение по оси y внутри изображения текстуры.

zoffset

Тип GLint, определяющий смещение по оси z внутри изображения текстуры.

width

Тип GLsizei, определяющий ширину текстуры.

height

Тип GLsizei, определяющий высоту текстуры.

depth

Тип GLsizei, определяющий глубину текстуры.

format

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

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

Тип 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 бит альфа.
  • 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)
  • ImageBitmap
  • ImageData
  • HTMLImageElement
  • HTMLCanvasElement
  • HTMLVideoElement
srcData

Объект TypedArray или DataView.

offset

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

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

Ничего (undefined).

Примеры

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

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

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

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

Рабочий стол Мобильные
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на IOS Samsung Internet WebView Android
texSubImage3D 56 79 51 43 15 58 51 43 15 7.0 58
srcData_param_accepts_SharedArrayBuffer 60 79 79 47 Нет 60 79 44 Нет 8.0 60

См. также

  • WebGLRenderingContext.createTexture()
  • WebGLRenderingContext.bindTexture()
  • WebGLRenderingContext.texImage2D()
  • WebGLRenderingContext.compressedTexImage2D()
  • WebGLRenderingContext.copyTexImage2D()
  • WebGLRenderingContext.getTexParameter()

© 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/WebGL2RenderingContext/texSubImage3D

Spec-Zone.ru

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