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);
Спецификации
Совместимость с браузерами
| Рабочий стол | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| 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