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 GPURenderPassEncoderdraw().

Cú pháp

js
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ẽ.

instanceCount Optional

Một số xác định số lượng thực thể cần vẽ. Nếu bỏ qua, instanceCount mặc định là 1.

firstVertex Optional

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, firstVertex mặc định là 0.

firstInstance Optional

Một số xác định thực thể đầu tiên cần vẽ. Nếu bỏ qua, firstInstance mặc định là 0.

Giá trị trả về

Không có (Undefined).

Ví dụ

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);
  }
}

Đ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

Tương thích trình duyệt

Xem thêm