GPURenderPassEncoder: phương thức drawIndexed()
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 drawIndexed() của giao diện GPURenderPassEncoder vẽ các nguyên thủy có chỉ mục dựa trên các bộ đệm đỉnh và chỉ mục được cung cấp bởi setVertexBuffer() và setIndexBuffer().
Cú pháp
drawIndexed(indexCount)
drawIndexed(indexCount, instanceCount)
drawIndexed(indexCount, instanceCount, firstIndex)
drawIndexed(indexCount, instanceCount, firstIndex, baseVertex)
drawIndexed(indexCount, instanceCount, firstIndex, baseVertex, firstInstance)
Tham số
indexCount-
Một số xác định số lượng chỉ mục 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. firstIndexOptional-
Một số xác định độ lệch vào bộ đệm chỉ mục, tính bằng chỉ mục, để bắt đầu vẽ từ đó. Nếu bỏ qua,
firstIndexmặc định là 0. baseVertexOptional-
Một số được thêm vào mỗi giá trị chỉ mục trước khi lập chỉ mục vào các bộ đệm đỉnh. Nếu bỏ qua,
baseVertexmặ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ụ
Trong ví dụ WebGPU Samples Shadow Mapping, drawIndexed() được sử dụng trong hai lần thực thi kết xuất riêng biệt trong mỗi khung hình hoạt ảnh, một lần để điền vào bộ đệm bóng và một lần để vẽ dạng xem chính của cảnh. Nghiên cứu danh sách mã ví dụ để có đầy đủ ngữ cảnh.
// …
const commandEncoder = device.createCommandEncoder();
{
const shadowPass = commandEncoder.beginRenderPass(shadowPassDescriptor);
shadowPass.setPipeline(shadowPipeline);
shadowPass.setBindGroup(0, sceneBindGroupForShadow);
shadowPass.setBindGroup(1, modelBindGroup);
shadowPass.setVertexBuffer(0, vertexBuffer);
shadowPass.setIndexBuffer(indexBuffer, "uint16");
shadowPass.drawIndexed(indexCount);
shadowPass.end();
}
{
const renderPass = commandEncoder.beginRenderPass(renderPassDescriptor);
renderPass.setPipeline(pipeline);
renderPass.setBindGroup(0, sceneBindGroupForRender);
renderPass.setBindGroup(1, modelBindGroup);
renderPass.setVertexBuffer(0, vertexBuffer);
renderPass.setIndexBuffer(indexBuffer, "uint16");
renderPass.drawIndexed(indexCount);
renderPass.end();
}
// …
Thông số kỹ thuật
| Specification |
|---|
| WebGPU> # dom-gpurendercommandsmixin-drawindexed> |