GPURenderBundleEncoder: drawIndexed() 方法

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

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

drawIndexed() 方法是 GPURenderBundleEncoder 接口的方法,用于根据 setVertexBuffer()setIndexBuffer() 提供的顶点和索引缓冲区绘制索引基元。

注意: 此方法在功能上与 GPURenderPassEncoder 上的等效方法 (drawIndexed()) 相同。

语法

js
drawIndexed(indexCount)
drawIndexed(indexCount, instanceCount)
drawIndexed(indexCount, instanceCount, firstIndex)
drawIndexed(indexCount, instanceCount, firstIndex, baseVertex)
drawIndexed(indexCount, instanceCount, firstIndex, baseVertex, firstInstance)

参数

indexCount

一个数字,定义要绘制的索引数量。

instanceCount 可选

一个数字,定义要绘制的实例数量。如果省略,instanceCount 默认值为 1。

firstIndex 可选

一个数字,定义索引缓冲区中的偏移量(以索引为单位),从该偏移量开始绘制。如果省略,firstIndex 默认值为 0。

baseVertex 可选

在索引顶点缓冲区之前,添加到每个索引值中的一个数字。如果省略,baseVertex 默认为 0。

firstInstance 可选

定义要绘制的第一个实例的数字。如果省略,firstInstance 默认为 0。

返回值

无 (未定义).

示例

js
// ...

const bundleEncoder = device.createRenderBundleEncoder(descriptor);

bundleEncoder.setPipeline(pipeline);
bundleEncoder.setBindGroup(0, sceneBindGroupForRender);
bundleEncoder.setBindGroup(1, modelBindGroup);
bundleEncoder.setVertexBuffer(0, vertexBuffer);
bundleEncoder.setIndexBuffer(indexBuffer, "uint16");
bundleEncoder.drawIndexed(indexCount);

const renderBundle = bundleEncoder.finish();

// ...

规范

规范
WebGPU
# dom-gpurendercommandsmixin-drawindexed

浏览器兼容性

BCD 表仅在浏览器中加载

参见