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

瀏覽器相容性

另見