WebGLRenderingContext: метод stencilFuncSeparate()
Базовая реализация Широко доступна
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с июля 2015 года.
Примечание: Эта функция доступна в Потоках Web Workers.
Метод WebGLRenderingContext.stencilFuncSeparate() из WebGL API устанавливает функцию и значение ссылки для тестирования штампов для передней и/или задней части.
Штампы позволяют включать и отключать отрисовку на основе каждого пикселя. Обычно они используются в многопроходной отрисовке для достижения специальных эффектов.
Синтаксис
stencilFuncSeparate(face, func, ref, mask)
Параметры
face-
Значение типа
GLenum, определяющее, обновляется ли состояние штампа для передней и/или задней части. Возможные значения:gl.FRONTgl.BACKgl.FRONT_AND_BACK
func-
Значение типа
GLenum, определяющее функцию тестирования. По умолчанию используется функцияgl.ALWAYS. Возможные значения:-
gl.NEVER: Никогда не пропускать. -
gl.LESS: Пропустить, если(ref & mask) < (stencil & mask). -
gl.EQUAL: Пропустить, если(ref & mask) = (stencil & mask). -
gl.LEQUAL: Пропустить, если(ref & mask) <= (stencil & mask). -
gl.GREATER: Пропустить, если(ref & mask) > (stencil & mask). -
gl.NOTEQUAL: Пропустить, если(ref & mask) !== (stencil & mask). -
gl.GEQUAL: Пропустить, если(ref & mask) >= (stencil & mask). -
gl.ALWAYS: Всегда пропускать.
-
ref-
Значение типа
GLint, определяющее значение ссылки для тестирования штампов. Это значение ограничено диапазоном от 0 до 2^n - 1, где n — количество битовых плоскостей в буфере штампов. По умолчанию равно 0. mask-
Значение типа
GLuint, определяющее битовую маску, которая используется для выполнения побитового И между значением ссылки и сохранённым значением штампа при выполнении теста. По умолчанию — все 1.
Возвращаемое значение
None (undefined).
Примеры
Тестирование штампов отключено по умолчанию. Чтобы включить или отключить тестирование штампов, используйте методы enable() и disable() с аргументом gl.STENCIL_TEST.
gl.enable(gl.STENCIL_TEST); gl.stencilFuncSeparate(gl.FRONT, gl.LESS, 0.2, 1110011);
Чтобы получить текущую функцию штампа, значение ссылки или другую информацию о штампе, обратитесь к соответствующим константам с помощью getParameter().
gl.getParameter(gl.STENCIL_FUNC); gl.getParameter(gl.STENCIL_VALUE_MASK); gl.getParameter(gl.STENCIL_REF); gl.getParameter(gl.STENCIL_BACK_FUNC); gl.getParameter(gl.STENCIL_BACK_VALUE_MASK); gl.getParameter(gl.STENCIL_BACK_REF); gl.getParameter(gl.STENCIL_BITS);
Спецификации
| Спецификация |
|---|
| Спецификация WebGL # 5.14.3 |
Совместимость с браузерами
| Рабочие столы | Мобильные | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
stencilFuncSeparate |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
См. также
© 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/stencilFuncSeparate