GPURenderPass
活跃的渲染通道。在调用 finish() 之前执行所有绘制调用。
方法
setPipeline
setPipeline(pipeline: GPUPipeline) -> ()
为后续绘制调用绑定管线。
setVertexBuffer
setVertexBuffer(slot: number, buffer: GPUBuffer) -> ()
将顶点缓冲区绑定到槽位(从 0 开始)。
setIndexBuffer
setIndexBuffer(buffer: GPUBuffer, format: ('uint16' | 'uint32')?) -> ()
绑定索引缓冲区。format 默认为 'uint16'。
setBindGroup
setBindGroup(groupIndex: number, bg: GPUBindGroup, dynamicOffsets: {number}?) -> ()
将预先创建的 BindGroup 绑定到组槽位。
dynamicOffsets:此组中每个动态 UBO 的一个字节偏移量(动态 UBO 通过 BindGroupLayoutEntry.hasDynamicOffset 在管线上声明)。顺序与 BindGroupDesc.ubos 中 UBO 的出现顺序匹配。典型 3D 模式:共享纹理 BindGroup 位于组 1,每对象 UBO 动态偏移量位于组 0。
setViewport
setViewport(x: number, y: number, w: number, h: number) -> ()
设置渲染视口(像素单位)。原点在除 GL 外的所有后端上均为左上角(GL 为左下角)。
setScissorRect
setScissorRect(x: number, y: number, w: number, h: number) -> ()
设置裁剪矩形(像素单位)。
setStencilReference
setStencilReference(ref: number) -> ()
设置模板参考值。
setBlendColor
setBlendColor(r: number, g: number, b: number, a: number) -> ()
设置用于 'constant' / 'one-minus-constant' 因子的常量混合颜色。
draw
draw(vertexCount: number, instanceCount: number?, firstVertex: number?) -> ()
非索引绘制。instanceCount 默认为 1,firstVertex 默认为 0。
drawIndexed
drawIndexed(indexCount: number, instanceCount: number?, firstIndex: number?) -> ()
索引绘制。instanceCount 默认为 1,firstIndex 默认为 0。
finish
finish() -> ()
提交渲染通道。对此对象的任何进一步方法调用都会报错。