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.R8gl.R16Fgl.R32Fgl.R8UIgl.RG8gl.RG16Fgl.RG32Fgl.RGUIgl.RGB8gl.SRGB8gl.RGB565gl.R11F_G11F_B10Fgl.RGB9_E5gl.RGB16Fgl.RGB32Fgl.RGB8UIgl.RGBA8gl.SRGB8_ALPHA8gl.RGB5_A1gl.RGBA4444gl.RGBA16Fgl.RGBA32Fgl.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.BYTEgl.UNSIGNED_SHORTgl.SHORTgl.UNSIGNED_INTgl.INTgl.HALF_FLOATgl.FLOATgl.UNSIGNED_INT_2_10_10_10_REVgl.UNSIGNED_INT_10F_11F_11F_REVgl.UNSIGNED_INT_5_9_9_9_REVgl.UNSIGNED_INT_24_8-
gl.FLOAT_32_UNSIGNED_INT_24_8_REV(пиксели должны бытьnull)
-
source-
В качестве источника пикселей для текстуры можно использовать один из следующих объектов:
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 |
См. также
© 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