A RenderPassEntry object is used to group Meshes or RenderBundle based on their rendering target.

interface RenderPassEntry {
    label?: string;
    renderPass: RenderPass;
    renderTexture: Texture;
    onBeforeRenderPass: (
        commandEncoder?: GPUCommandEncoder,
        swapChainTexture?: GPUTexture,
    ) => void;
    onAfterRenderPass: (
        commandEncoder?: GPUCommandEncoder,
        swapChainTexture?: GPUTexture,
    ) => void;
    useCustomRenderPass: (commandEncoder?: GPUCommandEncoder) => void;
    element: ShaderPass | PingPongPlane;
    stack: Stack;
}

Properties

label?: string

Optional label for this RenderPassEntry.

renderPass: RenderPass

RenderPass target used onto which render.

renderTexture: Texture

Texture to render to if any (if not specified then this RenderPassEntry Meshes will be rendered directly to screen).

onBeforeRenderPass: (
    commandEncoder?: GPUCommandEncoder,
    swapChainTexture?: GPUTexture,
) => void

Optional function to execute just before rendering the Meshes, useful for eventual texture copy.

onAfterRenderPass: (
    commandEncoder?: GPUCommandEncoder,
    swapChainTexture?: GPUTexture,
) => void

Optional function to execute just after rendering the Meshes, useful for eventual texture copy.

useCustomRenderPass: (commandEncoder?: GPUCommandEncoder) => void

Optional function that can be used to manually create a GPURenderPassEncoder and create a custom rendering behaviour instead of the regular one. Used internally to render shadows.

If this RenderPassEntry needs to render only one Mesh.

stack: Stack

If this RenderPassEntry needs to render multiple Meshes or RenderBundle, then use a Stack object.