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

js
stencilOp(fail, zfail, zpass)

Parameter

fail

Ein GLenum, das die Funktion angibt, die verwendet werden soll, wenn der Stencil-Test fehlschlägt. Der Standardwert ist gl.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 ist gl.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 ist gl.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.

js
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.

js
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

Siehe auch