GPURenderBundleEncoder:drawIndexed() 方法

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

安全上下文: 此功能仅在安全上下文(HTTPS)中可用,且支持此功能的浏览器数量有限。

注意:此功能在 Web Workers 中可用。

GPURenderBundleEncoder 接口的 drawIndexed() 方法根据通过 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。

返回值

无 (Undefined)。

示例

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

浏览器兼容性

另见