GPURenderBundleEncoder: phương thức draw()
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
Note: This feature is available in Web Workers.
Phương thức draw() của giao diện GPURenderBundleEncoder vẽ các nguyên thủy dựa trên các bộ đệm đỉnh được cung cấp bởi setVertexBuffer().
Note:
Phương thức này về mặt chức năng giống hệt với phương thức tương đương trên GPURenderPassEncoder — draw().
Cú pháp
draw(vertexCount)
draw(vertexCount, instanceCount)
draw(vertexCount, instanceCount, firstVertex)
draw(vertexCount, instanceCount, firstVertex, firstInstance)
Tham số
vertexCount-
Một số xác định số lượng đỉnh cần vẽ.
instanceCountOptional-
Một số xác định số lượng thực thể cần vẽ. Nếu bỏ qua,
instanceCountmặc định là 1. firstVertexOptional-
Một số xác định độ lệch vào các bộ đệm đỉnh, tính bằng đỉnh, để bắt đầu vẽ từ đó. Nếu bỏ qua,
firstVertexmặc định là 0. firstInstanceOptional-
Một số xác định thực thể đầu tiên cần vẽ. Nếu bỏ qua,
firstInstancemặc định là 0.
Giá trị trả về
Không có (Undefined).
Ví dụ
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);
}
}
Đoạn mã trên được lấy từ ví dụ WebGPU Samples Animometer example.
Thông số kỹ thuật
| Specification |
|---|
| WebGPU> # dom-gpurendercommandsmixin-draw> |