GPURenderPassEncoder: beginOcclusionQuery()-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 beginOcclusionQuery()-Methode der GPURenderPassEncoder-Schnittstelle startet eine Okklusionsabfrage am angegebenen Index des entsprechenden GPUQuerySet (bereitgestellt als Wert der occlusionQuerySet-Deskriptoreigenschaft beim Aufrufen von GPUCommandEncoder.beginRenderPass(), um den Rendering-Durchgang auszuführen).

Syntax

js
beginOcclusionQuery(queryIndex)

Parameter

queryIndex

Der Index im GPUQuerySet, an dem die Okklusionsabfrage begonnen werden soll.

Rückgabewert

Keiner (Undefined).

Validierung

Die folgenden Kriterien müssen erfüllt sein, wenn beginOcclusionQuery() aufgerufen wird, andernfalls wird ein GPUValidationError erzeugt und der GPURenderPassEncoder wird ungültig:

  • Ein GPUQuerySet wurde in der occlusionQuerySet-Deskriptoreigenschaft angegeben, wenn der ursprüngliche GPUCommandEncoder.beginRenderPass() aufgerufen wurde.
  • queryIndex ist kleiner als GPUQuerySet.count.
  • Auf queryIndex wurde im gleichen Rendering-Durchgang nicht bereits geschrieben.
  • Eine Okklusionsabfrage ist für diesen Rendering-Durchgang nicht bereits aktiv (d.h. durch einen vorherigen beginOcclusionQuery()-Aufruf).

Beispiele

js
// …

// Create a query set to hold the occlusion queries
const querySet = device.createQuerySet({
  type: "occlusion",
  count: 32,
});

// Render pass descriptor object, including the querySet
const renderPassDescriptor = {
  colorAttachments: [
    {
      clearValue: clearColor,
      loadOp: "clear",
      storeOp: "store",
      view: context.getCurrentTexture().createView(),
    },
  ],
  occlusionQuerySet: querySet,
};

// Begin the render pass
const passEncoder = commandEncoder.beginRenderPass(renderPassDescriptor);

// Begin an occlusion query at index 0
passEncoder.beginOcclusionQuery(0);

// Run some rendering commands
passEncoder.setPipeline(renderPipeline);
passEncoder.setVertexBuffer(0, vertexBuffer);
passEncoder.draw(3);

// End the occlusion query
passEncoder.endOcclusionQuery();

// …

Spezifikationen

Specification
WebGPU
# dom-gpurenderpassencoder-beginocclusionquery

Browser-Kompatibilität

Siehe auch