Spec-Zone.ru › Web APIs

WebGLRenderingContext: метод stencilFuncSeparate()

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

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

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

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

Метод WebGLRenderingContext.stencilFuncSeparate() из WebGL API устанавливает функцию и значение ссылки для тестирования штампов для передней и/или задней части.

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

Синтаксис

stencilFuncSeparate(face, func, ref, mask)

Параметры

face

Значение типа GLenum, определяющее, обновляется ли состояние штампа для передней и/или задней части. Возможные значения:

  • gl.FRONT
  • gl.BACK
  • gl.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

См. также

  • WebGLRenderingContext.stencilFunc()
  • WebGLRenderingContext.stencilMask()
  • WebGLRenderingContext.stencilMaskSeparate()
  • WebGLRenderingContext.stencilOp()
  • WebGLRenderingContext.stencilOpSeparate()

© 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

Spec-Zone.ru

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