Spec-Zone.ru › Web APIs

WebGLRenderingContext: метод blendFuncSeparate()

Базовая линия Широко доступен

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

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

Примечание: Эта функция доступна в Потоках веб-работы.

Метод WebGLRenderingContext.blendFuncSeparate() API WebGL определяет функцию, используемую для смешивания арифметики пикселей для RGB и альфа-компонентов отдельно.

Синтаксис

blendFuncSeparate(srcRGB, dstRGB, srcAlpha, dstAlpha)

Параметры

srcRGB

Значение GLenum, определяющее множитель для смешивания красного, зеленого и синего (RGB) исходных факторов. Значение по умолчанию: gl.ONE. Возможные значения см. ниже.

dstRGB

Значение GLenum, определяющее множитель для смешивания красного, зеленого и синего (RGB) целевых факторов. Значение по умолчанию: gl.ZERO. Возможные значения см. ниже.

srcAlpha

Значение GLenum, определяющее множитель для смешивания альфа-исходного фактора. Значение по умолчанию: gl.ONE. Возможные значения см. ниже.

dstAlpha

Значение GLenum, определяющее множитель для смешивания альфа-целевого фактора. Значение по умолчанию: gl.ZERO. Возможные значения см. ниже.

Возвращаемое значение

Ничего (undefined).

Исключения

  • Если srcRGB, dstRGB, srcAlpha или dstAlpha не являются одним из перечисленных возможных значений, выбрасывается ошибка gl.INVALID_ENUM.
  • Если постоянный цвет и постоянное альфа-значение используются вместе как исходные (srcRGB) и целевые (dstRGB) факторы, выбрасывается ошибка gl.INVALID_ENUM.

Константы

Следующие константы могут быть использованы для srcRGB, dstRGB, srcAlpha и dstAlpha

Формулы для факторов смешивания можно описать так (все значения RGBA находятся в диапазоне от 0 до 1):

  • цвет(RGB) = (исходный цвет * srcRGB) + (целевой цвет * dstRGB)
  • цвет(A) = (исходный альфа * srcAlpha) + (целевой альфа * dstAlpha)

В следующей таблице RS, GS, BS, AS обозначают соответственно красный, зеленый, синий и альфа компонент источника, а RD, GD, BD, AD обозначают соответственно красный, зеленый, синий и альфа компонент назначения. Аналогично, RC, GC, BC, AC обозначают соответственно красный, зеленый, синий и альфа компонент константы цвета. Все они имеют значения от 0 до 1 включительно.

Константа RGB-фактор Альфа-фактор Описание
gl.ZERO 0,0,0 0 Умножает все цвета на 0.
gl.ONE 1,1,1,1 1 Умножает все цвета на 1.
gl.SRC_COLOR RS, GS, BS AS Умножает все цвета на цвета источника.
gl.ONE_MINUS_SRC_COLOR 1-RS, 1-GS, 1-BS 1-AS Умножает все цвета на 1 минус каждый цвет источника.
gl.DST_COLOR RD, GD, BD AD Умножает все цвета на цвет назначения.
gl.ONE_MINUS_DST_COLOR 1-RD, 1-GD, 1-BD 1-AD Умножает все цвета на 1 минус каждый цвет назначения.
gl.SRC_ALPHA AS, AS, AS AS Умножает все цвета на альфа-цвет источника.
gl.ONE_MINUS_SRC_ALPHA 1-AS, 1-AS, 1-AS 1-AS Умножает все цвета на 1 минус альфа-цвет источника.
gl.DST_ALPHA AD, AD, AD AD Умножает все цвета на альфа-цвет назначения.
gl.ONE_MINUS_DST_ALPHA 1-AD, 1-AD, 1-AD 1-AD Умножает все цвета на 1 минус альфа-цвет назначения.
gl.CONSTANT_COLOR RC, GC, BC AC Умножает все цвета на константу цвета.
gl.ONE_MINUS_CONSTANT_COLOR 1-RC, 1-GC, 1-BC 1-AC Умножает все цвета на 1 минус константу цвета.
gl.CONSTANT_ALPHA AC, AC, AC AC Умножает все цвета на константу альфа-значения.
gl.ONE_MINUS_CONSTANT_ALPHA 1-AC, 1-AC, 1-AC 1-AC Умножает все цвета на 1 минус константу альфа-значения.
gl.SRC_ALPHA_SATURATE min(AS, 1 - AD), min(AS, 1 - AD), min(AS, 1 - AD) 1 Умножает цвета RGB на меньшее из альфа-цвета источника или значения 1 минус альфа-цвет назначения. Значение альфа умножается на 1.

Примеры

Чтобы использовать функцию смешивания, вы сначала должны активировать смешивание с помощью WebGLRenderingContext.enable() с аргументом gl.BLEND.

gl.enable(gl.BLEND);
gl.blendFuncSeparate(gl.SRC_COLOR, gl.DST_COLOR, gl.ONE, gl.ZERO);

Чтобы получить текущую функцию смешивания, запросите константы BLEND_SRC_RGB, BLEND_SRC_ALPHA, BLEND_DST_RGB, и BLEND_DST_ALPHA, которые возвращают одну из констант функции смешивания.

gl.enable(gl.BLEND);
gl.blendFuncSeparate(gl.SRC_COLOR, gl.DST_COLOR, gl.ONE, gl.ZERO);
gl.getParameter(gl.BLEND_SRC_RGB) === gl.SRC_COLOR;
// true

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

Спецификация
Спецификация WebGL
# 5.14.3

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

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
blendFuncSeparate 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3

См. также

  • WebGLRenderingContext.blendColor()
  • WebGLRenderingContext.blendEquation()

© 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/WebGLRenderingContext/blendFuncSeparate

Spec-Zone.ru

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