WebGLRenderingContext: stencilOpSeparate()-Methode
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Hinweis: Dieses Feature ist verfügbar in Web Workers.
Die WebGLRenderingContext.stencilOpSeparate()
-Methode der WebGL-API legt die Aktionen für den front- und/oder rückseitigen Stencil-Test fest.
Syntax
stencilOpSeparate(face, fail, zfail, zpass)
Parameter
face
-
Ein
GLenum
, das angibt, ob der front- und/oder rückseitige Stencil-Zustand aktualisiert wird. Die möglichen Werte sind:gl.FRONT
gl.BACK
gl.FRONT_AND_BACK
fail
-
Ein
GLenum
, das die Funktion angibt, die verwendet werden soll, wenn der Stencil-Test fehlschlägt. Der Standardwert istgl.KEEP
. zfail
-
Ein
GLenum
, das die Funktion angibt, die verwendet werden soll, wenn der Stencil-Test besteht, aber der Tiefentest fehlschlägt. Der Standardwert istgl.KEEP
. zpass
-
Ein
GLenum
, das die Funktion angibt, die verwendet werden soll, wenn sowohl der Stencil-Test als auch der Tiefentest bestehen, oder wenn der Stencil-Test besteht und es keinen Tiefenpuffer gibt oder der Tiefentest deaktiviert ist. Der Standardwert istgl.KEEP
.
Rückgabewert
Keiner (undefined
).
Konstanten
gl.KEEP
-
Behält den aktuellen Wert bei.
gl.ZERO
-
Setzt den Wert des Stencil-Puffers auf 0.
gl.REPLACE
-
Setzt den Wert des Stencil-Puffers auf den Referenzwert, wie er von
WebGLRenderingContext.stencilFunc()
angegeben wird. gl.INCR
-
Erhöht den aktuellen Wert des Stencil-Puffers. Begrenzung auf den maximal darstellbaren unveränderten Wert.
gl.INCR_WRAP
-
Erhöht den aktuellen Wert des Stencil-Puffers. Umschlagen des Werts im Stencil-Puffer auf Null, wenn der maximal darstellbare unveränderte Wert erhöht wird.
gl.DECR
-
Verringert den aktuellen Wert des Stencil-Puffers. Begrenzung auf 0.
gl.DECR_WRAP
-
Verringert den aktuellen Wert des Stencil-Puffers. Umschlagen des Werts im Stencil-Puffer auf den maximal darstellbaren unveränderten Wert, wenn ein Stencil-Puffer-Wert von 0 verringert wird.
gl.INVERT
-
Invertiert den aktuellen Wert des Stencil-Puffers bitweise.
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.stencilOpSeparate(gl.FRONT, gl.INCR, gl.DECR, gl.INVERT);
Um die aktuellen Informationen über Stencil- und Tiefenpass oder -fehler zu erhalten, fragen Sie die
folgenden Konstanten mit getParameter()
ab.
gl.getParameter(gl.STENCIL_FAIL);
gl.getParameter(gl.STENCIL_PASS_DEPTH_PASS);
gl.getParameter(gl.STENCIL_PASS_DEPTH_FAIL);
gl.getParameter(gl.STENCIL_BACK_FAIL);
gl.getParameter(gl.STENCIL_BACK_PASS_DEPTH_PASS);
gl.getParameter(gl.STENCIL_BACK_PASS_DEPTH_FAIL);
gl.getParameter(gl.STENCIL_BITS);
Spezifikationen
Specification |
---|
WebGL Specification # 5.14.3 |
Browser-Kompatibilität
BCD tables only load in the browser