Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

GPURenderPassEncoder: beginOcclusionQuery() Methode

Eingeschränkt verfügbar

Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.

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 relevanten GPUQuerySet (bereitgestellt als Wert der occlusionQuerySet Deskriptoreigenschaft bei Aufruf von GPUCommandEncoder.beginRenderPass(), um den Render-Pass auszuführen).

Syntax

js
beginOcclusionQuery(queryIndex)

Parameter

queryIndex

Der Index im GPUQuerySet, bei dem die Okklusionsabfrage gestartet wird.

Rückgabewert

Keiner (undefined).

Validierung

Die folgenden Kriterien müssen beim Aufruf von beginOcclusionQuery() erfüllt sein, andernfalls wird ein GPUValidationError generiert und der GPURenderPassEncoder wird ungültig:

  • Ein GPUQuerySet wurde in der occlusionQuerySet Deskriptoreigenschaft angegeben, als der Ursprungs-[GPUCommandEncoder.beginRenderPass()](/de/docs/Web/API/GPUCommandEncoder/beginRenderPass) aufgerufen wurde.
  • queryIndex ist kleiner als GPUQuerySet.count.
  • In den queryIndex wurde im selben Render-Pass noch nicht geschrieben.
  • Eine Okklusionsabfrage ist für diesen Render-Pass nicht bereits 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

Spezifikation
WebGPU
# dom-gpurenderpassencoder-beginocclusionquery

Browser-Kompatibilität

Siehe auch