GPURenderPassEncoder: endOcclusionQuery() 方法

实验性: 这是一个 实验性技术


在生产环境中使用此功能前,请仔细查看浏览器兼容性表格

安全上下文:此功能仅在安全上下文(HTTPS)下,以及部分或全部支持的浏览器中可用。

GPURenderPassEncoder 接口的endOcclusionQuery()方法结束之前使用beginOcclusionQuery()启动的活动遮挡查询。

语法

js
endOcclusionQuery()

参数

无。

返回值

无(Undefined)。

验证

调用endOcclusionQuery()时必须满足以下条件,否则将生成GPUValidationError,并且GPURenderPassEncoder将变为无效

  • 此渲染通道存在活动遮挡查询(即通过之前的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-endocclusionquery

浏览器兼容性

BCD 表格仅在浏览器中加载

另请参阅