GPURenderPassEncoder: beginOcclusionQuery() 方法

实验性: 这是一个 实验性技术
在生产环境中使用之前,请仔细查看 浏览器兼容性表格

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

beginOcclusionQuery() 方法是 GPURenderPassEncoder 接口的一部分,它在相关 GPUQuerySet 的指定索引处开始一个遮挡查询(在调用 GPUCommandEncoder.beginRenderPass() 执行渲染传递时,作为 occlusionQuerySet 描述符属性的值提供)。

语法

js
beginOcclusionQuery(queryIndex)

参数

queryIndex

GPUQuerySet 中开始遮挡查询的索引。

返回值

无 (Undefined).

验证

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

示例

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

浏览器兼容性

BCD 表格仅在浏览器中加载

另请参阅