跳到主要内容

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

提交渲染通道。对此对象的任何进一步方法调用都会报错。