GPURenderPassEncoder: beginOcclusionQuery() 方法
注意:此功能在 Web Workers 中可用。
GPURenderPassEncoder 介面的 beginOcclusionQuery() 方法會在相關的 GPUQuerySet 的指定索引處開始一個遮擋查詢(該 GPUQuerySet 是在呼叫 GPUCommandEncoder.beginRenderPass() 來執行渲染通道時,作為 occlusionQuerySet 描述符屬性的值提供的)。
語法
js
beginOcclusionQuery(queryIndex)
引數
queryIndex-
在
GPUQuerySet中開始遮擋查詢的索引。
返回值
無 (Undefined)。
驗證
呼叫 beginOcclusionQuery() 時必須滿足以下條件,否則將生成 GPUValidationError,並且 GPURenderPassEncoder 會失效。
- 在呼叫源
GPUCommandEncoder.beginRenderPass()時,已在occlusionQuerySet描述符屬性中指定了一個GPUQuerySet。 queryIndex小於GPUQuerySet.count。- 在同一個渲染通道中,
queryIndex尚未被寫入過。 - 此渲染通道尚未啟用遮擋查詢(即,之前沒有呼叫過
beginOcclusionQuery())。
示例
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();
// …
規範
| 規範 |
|---|
| WebGPU # dom-gpurenderpassencoder-beginocclusionquery |
瀏覽器相容性
載入中…