Spec-Zone.ru › Web APIs

Расширение 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

См. также

  • WebGLRenderingContext.getExtension()
  • WebGLRenderingContext.texImage2D()
  • WebGLRenderingContext.renderbufferStorage()

© 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

Spec-Zone.ru

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