Spec-Zone.ru › Web APIs

OES_draw_buffers_indexed

Базовая версия 2022
Новое

С декабря 2022 года эта функция работает на последних устройствах и версиях браузеров. Эта функция может не работать на старых устройствах или браузерах.

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

Расширение OES_draw_buffers_indexed является частью WebGL API и позволяет использовать различные параметры смешивания при одновременной записи в несколько цветовых буферов.

Расширения WebGL доступны с помощью метода WebGLRenderingContext.getExtension(). Дополнительную информацию см. также в разделе Использование расширений в учебнике по WebGL.

Примечание: Это расширение доступно только для контекстов WebGL2.

Методы экземпляра

OES_draw_buffers_indexed.blendEquationiOES()

Устанавливает уравнения смешивания RGB и альфа для конкретного буфера отрисовки.

OES_draw_buffers_indexed.blendEquationSeparateiOES()

Устанавливает уравнения смешивания RGB и альфа раздельно для конкретного буфера отрисовки.

OES_draw_buffers_indexed.blendFunciOES()

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

OES_draw_buffers_indexed.blendFuncSeparateiOES()

Определяет функцию, используемую при смешивании пикселей для компонентов RGB и альфа раздельно для конкретного буфера отрисовки.

OES_draw_buffers_indexed.colorMaskiOES()

Устанавливает, какие цветовые компоненты включить или отключить при отрисовке или рендеринге для конкретного буфера отрисовки.

OES_draw_buffers_indexed.disableiOES()

Отключает смешивание для конкретного буфера отрисовки.

OES_draw_buffers_indexed.enableiOES()

Включает смешивание для конкретного буфера отрисовки.

Примеры

Использование расширения OES_draw_buffers_indexed

Включить расширение с помощью вызова WebGLRenderingContext.getExtension().

const ext = gl.getExtension("OES_draw_buffers_indexed");

Теперь можно включить смешивание, задать уравнение смешивания, функцию смешивания и маску цвета для конкретного буфера отрисовки.

// For gl.DRAW_BUFFER0
ext.enableiOES(gl.BLEND, 0);
ext.blendEquationiOES(0, gl.FUNC_ADD);
ext.blendFunciOES(0, gl.ONE, gl.ONE);
ext.colorMaskiOES(0, 1, 0, 0, 0);

// For gl.DRAW_BUFFER1
ext.enableiOES(gl.BLEND, 1);
ext.blendEquationSeparateiOES(1, gl.FUNC_ADD, gl.FUNC_SUBTRACT);
ext.blendFuncSeparateiOES(
  1,
  gl.SRC_ALPHA,
  gl.ONE_MINUS_SRC_ALPHA,
  gl.ZERO,
  gl.ZERO,
);
ext.colorMaskiOES(1, 0, 1, 0, 0);

Для получения настроек для конкретного буфера отрисовки используйте WebGL2RenderingContext.getIndexedParameter().

// For gl.DRAW_BUFFER0
gl.getIndexedParameter(gl.BLEND_EQUATION_RGB, 0);
gl.getIndexedParameter(gl.BLEND_EQUATION_ALPHA, 0);
gl.getIndexedParameter(gl.BLEND_SRC_RGB, 0);
gl.getIndexedParameter(gl.BLEND_SRC_ALPHA, 0);
gl.getIndexedParameter(gl.BLEND_DST_RGB, 0);
gl.getIndexedParameter(gl.BLEND_DST_ALPHA, 0);
gl.getIndexedParameter(gl.COLOR_WRITEMASK, 0);

// For gl.DRAW_BUFFER1
gl.getIndexedParameter(gl.BLEND_EQUATION_RGB, 1);
gl.getIndexedParameter(gl.BLEND_EQUATION_ALPHA, 1);
gl.getIndexedParameter(gl.BLEND_SRC_RGB, 1);
gl.getIndexedParameter(gl.BLEND_SRC_ALPHA, 1);
gl.getIndexedParameter(gl.BLEND_DST_RGB, 1);
gl.getIndexedParameter(gl.BLEND_DST_ALPHA, 1);
gl.getIndexedParameter(gl.COLOR_WRITEMASK, 1);

Вы можете использовать WebGLRenderingContext.getParameter(), чтобы узнать, сколько буферов отрисовки доступно.

const maxDrawBuffers = gl.getParameter(gl.MAX_DRAW_BUFFERS);

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

Спецификация
Спецификация расширения WebGL OES_draw_buffers_indexed

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

Рабочий стол Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari в iOS Samsung Internet WebView Android
OES_draw_buffers_indexed 100 100 108 86 16 100 108 69 16 19.0 100
blendEquationSeparateiOES 100 100 108 86 16 100 108 69 16 19.0 100
blendEquationiOES 100 100 108 86 16 100 108 69 16 19.0 100
blendFuncSeparateiOES 100 100 108 86 16 100 108 69 16 19.0 100
blendFunciOES 100 100 108 86 16 100 108 69 16 19.0 100
colorMaskiOES 100 100 108 86 16 100 108 69 16 19.0 100
disableiOES 100 100 108 86 16 100 108 69 16 19.0 100
enableiOES 100 100 108 86 16 100 108 69 16 19.0 100

© 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/OES_draw_buffers_indexed

Spec-Zone.ru

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