Spec-Zone.ru › Web APIs

WebGL2RenderingContext: метод texImage3D()

Базовая реализация Широко доступна *

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

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

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

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

Метод WebGLRenderingContext.texImage3D() API WebGL определяет трехмерное изображение текстуры.

Синтаксис

texImage3D(target, level, internalformat, width, height, depth, border, format, type, offset)
texImage3D(target, level, internalformat, width, height, depth, border, format, type, source)
texImage3D(target, level, internalformat, width, height, depth, border, format, type, srcData)
texImage3D(target, level, internalformat, width, height, depth, border, format, type, srcData, srcOffset)

Параметры

target

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

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

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

internalformat

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

  • 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.SRGB8_ALPHA8
  • gl.RGB5_A1
  • gl.RGBA4444
  • gl.RGBA16F
  • gl.RGBA32F
  • gl.RGBA8UI
width

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

height

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

depth

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

border

Тип GLint, определяющий ширину границы. Должно быть 0.

format

Тип GLenum, определяющий формат данных пикселей. Правильные комбинации с internalformat указаны в этой таблице.

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

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

  • ImageBitmap,
  • ImageData,
  • HTMLImageElement,
  • HTMLCanvasElement,
  • HTMLVideoElement.
srcData

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

offset

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

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

Ничего (undefined).

Примеры

gl.texImage3D(
  gl.TEXTURE_3D,
  0, // level
  gl.RGBA, // internalFormat
  1, // width
  1, // height
  1, // depth
  0, // border
  gl.RGBA, // format
  gl.UNSIGNED_BYTE, // type
  new Uint8Array([0xff, 0x00, 0x00, 0x00]),
); // data

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

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

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

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
texImage3D 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.texSubImage2D()
  • 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/texImage3D

Spec-Zone.ru

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