WebGLRenderingContext: stencilFuncSeparate() Methode
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.
Hinweis: Diese Funktion ist in Web Workers verfügbar.
Die WebGLRenderingContext.stencilFuncSeparate() Methode der
WebGL API setzt die Funktion und den Referenzwert für das Stencil-Testing sowohl für die Vorder- als auch Rückseite.
Stencil-Testing ermöglicht und deaktiviert das Zeichnen auf einer Pixel-für-Pixel-Basis. Es wird typischerweise beim Mehrfachdurchlaufs-Rendering verwendet, um Spezialeffekte zu erzielen.
Syntax
stencilFuncSeparate(face, func, ref, mask)
Parameter
face-
Ein
GLenum, der angibt, ob der Stencil-Zustand der Vorder- und/oder Rückseite aktualisiert wird. Die möglichen Werte sind:gl.FRONTgl.BACKgl.FRONT_AND_BACK
func-
Ein
GLenum, der die Testfunktion angibt. Die Standardfunktion istgl.ALWAYS. Die möglichen Werte sind:gl.NEVER: Niemals bestehen.gl.LESS: Bestehen, wenn(ref & mask) < (stencil & mask).gl.EQUAL: Bestehen, wenn(ref & mask) = (stencil & mask).gl.LEQUAL: Bestehen, wenn(ref & mask) <= (stencil & mask).gl.GREATER: Bestehen, wenn(ref & mask) > (stencil & mask).gl.NOTEQUAL: Bestehen, wenn(ref & mask) !== (stencil & mask).gl.GEQUAL: Bestehen, wenn(ref & mask) >= (stencil & mask).gl.ALWAYS: Immer bestehen.
ref-
Ein
GLint, der den Referenzwert für den Stencil-Test angibt. Dieser Wert wird auf den Bereich 0 bis 2^n - 1 begrenzt, wobei n die Anzahl der Bitplanes im Stencil-Buffer ist. Der Standardwert ist 0. mask-
Ein
GLuint, der eine Bit-weise Maske angibt, die verwendet wird, um den Referenzwert und den gespeicherten Stencil-Wert bei der Durchführung des Tests mit einem AND zu verknüpfen. Der Standardwert ist alles 1.
Rückgabewert
Keiner (undefined).
Beispiele
Das Stencil-Testing ist standardmäßig deaktiviert. Um das Stencil-Testing zu aktivieren oder zu deaktivieren, verwenden Sie
die enable() und
disable() Methoden mit dem Argument
gl.STENCIL_TEST.
gl.enable(gl.STENCIL_TEST);
gl.stencilFuncSeparate(gl.FRONT, gl.LESS, 0.2, 1110011);
Um die aktuelle Stencil-Funktion, den Referenzwert oder andere Stencil-Informationen zu erhalten,
fragen Sie folgende Konstanten mit getParameter() ab.
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);
Spezifikationen
| Spezifikation |
|---|
| WebGL Specification> # 5.14.3> |