GPURenderBundleEncoder: draw() 方法
draw()
方法是 GPURenderBundleEncoder
接口的方法,它基于由 setVertexBuffer()
提供的顶点缓冲区绘制基本图形。
注意:此方法的功能与 GPURenderPassEncoder
上的等效方法相同,即 draw()
。
语法
js
draw(vertexCount)
draw(vertexCount, instanceCount)
draw(vertexCount, instanceCount, firstVertex)
draw(vertexCount, instanceCount, firstVertex, firstInstance)
参数
vertexCount
-
定义要绘制的顶点数量的数字。
instanceCount
可选-
定义要绘制的实例数量的数字。如果省略,
instanceCount
默认值为 1。 firstVertex
可选-
定义顶点缓冲区中开始绘制的偏移量(以顶点为单位)的数字。如果省略,
firstVertex
默认值为 0。 firstInstance
可选-
定义要绘制的第一个实例的数字。如果省略,
firstInstance
默认值为 0。
返回值
无 (Undefined
).
示例
js
function recordRenderPass(passEncoder) {
if (settings.dynamicOffsets) {
passEncoder.setPipeline(dynamicPipeline);
} else {
passEncoder.setPipeline(pipeline);
}
passEncoder.setVertexBuffer(0, vertexBuffer);
passEncoder.setBindGroup(0, timeBindGroup);
const dynamicOffsets = [0];
for (let i = 0; i < numTriangles; ++i) {
if (settings.dynamicOffsets) {
dynamicOffsets[0] = i * alignedUniformBytes;
passEncoder.setBindGroup(1, dynamicBindGroup, dynamicOffsets);
} else {
passEncoder.setBindGroup(1, bindGroups[i]);
}
passEncoder.draw(3, 1, 0, 0);
}
}
以上代码片段来自 WebGPU 示例 Animometer 示例。
规范
规范 |
---|
WebGPU # dom-gpurendercommandsmixin-draw |
浏览器兼容性
BCD 表格仅在浏览器中加载
另请参阅
- The WebGPU API