WebGL2RenderingContext: drawElementsInstanced() Methode

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021.

Hinweis: Diese Funktion ist in Web Workers verfügbar.

Die WebGL2RenderingContext.drawElementsInstanced()-Methode der WebGL 2 API rendert Primitive aus Array-Daten wie die gl.drawElements()-Methode. Darüber hinaus kann sie mehrere Instanzen eines Elementsatzes ausführen.

Hinweis: Bei Verwendung von WebGL 1 kann die ANGLE_instanced_arrays-Erweiterung diese Methode ebenfalls bereitstellen.

Syntax

js
drawElementsInstanced(mode, count, type, offset, instanceCount)

Parameter

mode

Ein GLenum, das den Typ des zu rendernden Primitives angibt. Mögliche Werte sind:

  • gl.POINTS: Zeichnet einen einzelnen Punkt.
  • gl.LINE_STRIP: Zeichnet eine gerade Linie zum nächsten Scheitelpunkt.
  • gl.LINE_LOOP: Zeichnet eine gerade Linie zum nächsten Scheitelpunkt und verbindet den letzten Scheitelpunkt zurück mit dem ersten.
  • gl.LINES: Zeichnet eine Linie zwischen einem Paar von Scheitelpunkten.
  • gl.TRIANGLE_STRIP
  • gl.TRIANGLE_FAN
  • gl.TRIANGLES: Zeichnet ein Dreieck für eine Gruppe von drei Scheitelpunkten.
count

Ein GLsizei, das die Anzahl der zu rendernden Elemente angibt.

type

Ein GLenum, der den Typ der Werte im Elementarray-Puffer angibt. Mögliche Werte sind:

offset

Ein GLintptr, der einen Versatz im Elementarray-Puffer angibt. Muss ein gültiges Vielfaches der Größe des angegebenen type sein.

instanceCount

Ein GLsizei, der die Anzahl der Instanzen des auszuführenden Elementsatzes angibt.

Rückgabewert

Keiner (undefined).

Ausnahmen

  • Wenn mode nicht einer der akzeptierten Werte ist, wird ein gl.INVALID_ENUM-Fehler ausgelöst.
  • Wenn offset ein gültiges Vielfaches der Größe des angegebenen Typs ist, wird ein gl.INVALID_OPERATION-Fehler ausgelöst.
  • Wenn count oder instanceCount negativ sind, wird ein gl.INVALID_VALUE-Fehler ausgelöst.

Beispiele

js
gl.drawElementsInstanced(gl.POINTS, 2, gl.UNSIGNED_SHORT, 0, 4);

Spezifikationen

Specification
WebGL 2.0 Specification
# 3.7.9

Browser-Kompatibilität

Siehe auch