On this page

SubRenderPass QML Type

Renders a sub-section of work within the same render target as the parent RenderPass. More...

Import Statement: import QtQuick3D
Since: Qt 6.11
Inherits:

Command

Properties

Detailed Description

SubRenderPass is a Command that subdivides a RenderPass into smaller, independently configured pieces while sharing the same render target. Only the parent RenderPass controls which textures are rendered into (via ColorAttachment and DepthTextureAttachment) and when the pass begins (and therefore when the render target is cleared). A SubRenderPass cannot set its own render target or clear settings — those are always inherited from the parent pass.

What a SubRenderPass can control is what gets rendered and how: it has its own commands, so it can carry a RenderablesFilter to select a subset of objects, a PipelineStateOverride to change depth/blend state, a different materialMode, and so on.

A typical use is a forward-rendering pipeline where a single color pass uses separate SubRenderPasses for the background, opaque objects, and transparent objects. All three sub-passes write into the same color and depth textures, but each has different pipeline state:

RenderPass {
    id: mainColorPass
    commands: [
        // Render targets are set at the parent RenderPass level only
        ColorAttachment { name: "color0"; target: colorTexture },
        DepthTextureAttachment { target: depthTexture },

        // Sub-pass 1: render the skybox background
        SubRenderPass { renderPass: skyboxSubPass },

        // Sub-pass 2: opaque objects with depth testing and writing
        SubRenderPass { renderPass: opaqueSubPass },

        // Sub-pass 3: transparent objects with blending, no depth write
        SubRenderPass { renderPass: transparentSubPass }
    ]
}

// Sub-passes share mainColorPass's render target
RenderPass {
    id: skyboxSubPass
    passMode: RenderPass.SkyboxPass
}

RenderPass {
    id: opaqueSubPass
    commands: [
        RenderablesFilter { renderableTypes: RenderablesFilter.Opaque }
    ]
}

RenderPass {
    id: transparentSubPass
    commands: [
        RenderablesFilter { renderableTypes: RenderablesFilter.Transparent },
        PipelineStateOverride {
            blendEnabled: true
            depthWriteEnabled: false
        }
    ]
}

See also RenderPass, RenderablesFilter, and PipelineStateOverride.

Property Documentation

renderPass : RenderPass

The RenderPass that will be executed as a sub-pass when this command is processed.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.