GPURenderPassEncoder: beginOcclusionQuery() Methode

Limited availability

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

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.

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 beginnt eine Okklusionsabfrage am angegebenen Index des relevanten GPUQuerySet (bereitgestellt als Wert der occlusionQuerySet Descriptor-Eigenschaft, wenn GPUCommandEncoder.beginRenderPass() aufgerufen wird, um den Renderpass 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 Descriptor-Eigenschaft angegeben, als der ursprüngliche GPUCommandEncoder.beginRenderPass() aufgerufen wurde.
  • queryIndex ist kleiner als GPUQuerySet.count.
  • Der queryIndex wurde im selben Renderpass noch nicht beschrieben.
  • Für diesen Renderpass ist nicht bereits eine Okklusionsabfrage aktiv (d.h. über 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