Расширение EXT_texture_norm16
Ограниченная доступность
Эта функция не относится к Baseline, так как она не работает в некоторых из самых широко используемых браузеров.
Расширение EXT_texture_norm16 является частью WebGL API и предоставляет набор новых 16-битных знакопеременных нормализованных и беззнаковых нормализованных форматов (текстура с фиксированной точкой, буфер рендеринга и буфер текстуры).
При включении этого расширения:
- Методы
WebGLRenderingContext.texImage2D()иWebGLRenderingContext.texSubImage2D()принимают новые форматы, предоставляемые этим расширением. - 16-битные нормализованные типы с фиксированной точкой
ext.R16_EXT,ext.RG16_EXTиext.RGBA16_EXTстановятся доступными в качестве рендерируемых цветов форматов и буферов рендеринга и могут быть созданы в этих форматах.
WebGL-расширения доступны с помощью метода WebGLRenderingContext.getExtension(). Дополнительную информацию см. также в разделе Использование расширений в учебнике по WebGL.
Примечание: Это расширение доступно только для контекстов WebGL 2.
Константы
ext.R16_EXT-
Красный 16-битный беззнаковый формат. Рендерируемый цветом.
ext.RG16_EXT-
RG 16-битный беззнаковый формат. Рендерируемый цветом.
ext.RGB16_EXT-
RGB 16-битный беззнаковый формат.
ext.RGBA16_EXT-
RGBA 16-битный беззнаковый формат. Рендерируемый цветом.
ext.R16_SNORM_EXT-
Красный 16-битный знакопеременный нормализованный формат.
ext.RG16_SNORM_EXT-
RG 16-битный знакопеременный нормализованный формат.
ext.RGB16_SNORM_EXT-
RGB 16-битный знакопеременный нормализованный формат.
ext.RGBA16_SNORM_EXT-
RGBA 16-битный знакопеременный нормализованный формат.
Примеры
Включение расширения
let ext = gl.getExtension("EXT_texture_norm16");
Форматы текстур
Метод WebGLRenderingContext.texImage2D() принимает новые форматы, когда EXT_texture_norm16 включено. Примеры вызовов:
// imageData = Uint16Array gl.texImage2D(gl.TEXTURE_2D, 0, ext.R16_EXT, 1, 1, 0, gl.RED, gl.UNSIGNED_SHORT, imageData); gl.texImage2D(gl.TEXTURE_2D, 0, ext.RG16_EXT, 1, 1, 0, gl.RG, gl.UNSIGNED_SHORT, imageData); gl.texImage2D(gl.TEXTURE_2D, 0, ext.RGB16_EXT, 1, 1, 0, gl.RGB, gl.UNSIGNED_SHORT, imageData); gl.texImage2D(gl.TEXTURE_2D, 0, ext.RGBA16_EXT, 1, 1, 0, gl.RGBA, gl.UNSIGNED_SHORT, imageData); // imageData = Int16Array gl.texImage2D(gl.TEXTURE_2D, 0, ext.R16_SNORM_EXT, 1, 1, 0, gl.RED, gl.SHORT, imageData); gl.texImage2D(gl.TEXTURE_2D, 0, ext.RG16_SNORM_EXT, 1, 1, 0, gl.RG, gl.SHORT, imageData); gl.texImage2D(gl.TEXTURE_2D, 0, ext.RGB16_SNORM_EXT, 1, 1, 0, gl.RGB, gl.SHORT, imageData); gl.texImage2D(gl.TEXTURE_2D, 0, ext.RGBA16_SNORM_EXT, 1, 1, 0, gl.RGBA, gl.SHORT, imageData);
Форматы буферов рендеринга
Метод WebGLRenderingContext.renderbufferStorage() принимает ext.R16_EXT, ext.RG16_EXT и ext.RGBA16_EXT в качестве внутренних форматов для создания буферов рендеринга в этих форматах. Примеры вызовов:
gl.renderbufferStorage(gl.RENDERBUFFER, ext.R16_EXT, 1, 1); gl.renderbufferStorage(gl.RENDERBUFFER, ext.RG16_EXT, 1, 1); gl.renderbufferStorage(gl.RENDERBUFFER, ext.RGBA16_EXT, 1, 1);
Спецификации
| Спецификация |
|---|
| Спецификация расширения WebGL EXT_texture_norm16 |
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
EXT_texture_norm16 |
87 | 87 | Нет | Нет | 16 | 87 | Нет | 62 | 16 | 14.0 | 87 |
См. также
© 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/EXT_texture_norm16