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
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 derocclusionQuerySet
-Deskriptoreigenschaft angegeben, wenn der ursprünglicheGPUCommandEncoder.beginRenderPass()
aufgerufen wurde. queryIndex
ist kleiner alsGPUQuerySet.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
// …
// 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
- Die WebGPU API