WebGLRenderingContext: stencilOp()-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.stencilOp()
-Methode der WebGL API legt sowohl die Vorder- als auch die Rückseiten-Stencil-Testaktionen fest.
Syntax
stencilOp(fail, zfail, zpass)
Parameter
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 bestanden wird, 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 bestanden werden, oder wenn der Stencil-Test bestanden wird und kein Tiefenpuffer existiert oder die Tiefentestung deaktiviert ist. Der Standardwert istgl.KEEP
.
Rückgabewert
Kein (undefined
).
Konstanten
gl.KEEP
-
Behält den aktuellen Wert bei.
gl.ZERO
-
Setzt den Stencil-Pufferwert auf 0.
gl.REPLACE
-
Setzt den Stencil-Pufferwert auf den Referenzwert, wie durch
WebGLRenderingContext.stencilFunc()
spezifiziert. gl.INCR
-
Erhöht den aktuellen Stencil-Pufferwert. Begrenzt auf den maximal darstellbaren ungeraden Wert.
gl.INCR_WRAP
-
Erhöht den aktuellen Stencil-Pufferwert. Setzt den Stencil-Pufferwert auf null zurück, wenn der maximal darstellbare ungerade Wert erhöht wird.
gl.DECR
-
Verringert den aktuellen Stencil-Pufferwert. Begrenzt auf 0.
gl.DECR_WRAP
-
Verringert den aktuellen Stencil-Pufferwert. Setzt den Stencil-Pufferwert auf den maximal darstellbaren ungeraden Wert zurück, wenn ein Stencil-Pufferwert von 0 verringert wird.
gl.INVERT
-
Invertiert den aktuellen Stencil-Pufferwert bitweise.
Beispiele
Der Stencil-Test ist standardmäßig deaktiviert. Um den Stencil-Test zu aktivieren oder zu deaktivieren, verwenden Sie die Methoden enable()
und disable()
mit dem Argument gl.STENCIL_TEST
.
gl.enable(gl.STENCIL_TEST);
gl.stencilOp(gl.INCR, gl.DECR, gl.INVERT);
Um aktuelle Informationen über den Stencil- und Tiefe-Pass oder -Fail 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