GPURenderBundleEncoder: draw()-Methode

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.

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

Die draw()-Methode der GPURenderBundleEncoder-Schnittstelle zeichnet Primitiven basierend auf den von setVertexBuffer() bereitgestellten Vertex-Puffern.

Hinweis: Diese Methode ist funktionell identisch mit ihrem Äquivalent auf GPURenderPassEncoderdraw().

Syntax

js
draw(vertexCount)
draw(vertexCount, instanceCount)
draw(vertexCount, instanceCount, firstVertex)
draw(vertexCount, instanceCount, firstVertex, firstInstance)

Parameter

vertexCount

Eine Zahl, die die Anzahl der zu zeichnenden Vertices definiert.

instanceCount Optional

Eine Zahl, die die Anzahl der zu zeichnenden Instanzen definiert. Wird diese Zahl weggelassen, ist der Standardwert für instanceCount 1.

firstVertex Optional

Eine Zahl, die den Versatz in den Vertex-Puffern in Vertices definiert, ab dem begonnen wird zu zeichnen. Wird diese Zahl weggelassen, ist der Standardwert für firstVertex 0.

firstInstance Optional

Eine Zahl, die die erste zu zeichnende Instanz definiert. Wird diese Zahl weggelassen, ist der Standardwert für firstInstance 0.

Rückgabewert

Keiner (Undefined).

Beispiele

js
function recordRenderPass(passEncoder) {
  if (settings.dynamicOffsets) {
    passEncoder.setPipeline(dynamicPipeline);
  } else {
    passEncoder.setPipeline(pipeline);
  }
  passEncoder.setVertexBuffer(0, vertexBuffer);
  passEncoder.setBindGroup(0, timeBindGroup);
  const dynamicOffsets = [0];
  for (let i = 0; i < numTriangles; ++i) {
    if (settings.dynamicOffsets) {
      dynamicOffsets[0] = i * alignedUniformBytes;
      passEncoder.setBindGroup(1, dynamicBindGroup, dynamicOffsets);
    } else {
      passEncoder.setBindGroup(1, bindGroups[i]);
    }
    passEncoder.draw(3, 1, 0, 0);
  }
}

Der obige Ausschnitt stammt aus dem WebGPU Samples Animometer-Beispiel.

Spezifikationen

Specification
WebGPU
# dom-gpurendercommandsmixin-draw

Browser-Kompatibilität

Siehe auch