本页内容

RenderPass QML Type

封装了一个渲染通道。更多...

Import Statement: import Qt3D.Render 2.12
In C++: QRenderPass
Inherits:

Node

Status: Deprecated

此类型已弃用。我们强烈建议不要在新代码中使用它。

属性

详细说明

渲染通道(RenderPass)指定了一个单一的渲染通道——即着色器程序执行的一个实例——供技术(Technique)使用。一个渲染通道由渲染通道对象(ShaderProgram )以及以下对象列表组成:渲染通道参数对象(FilterKey )、渲染通道参数节点(RenderState )和渲染通道参数节点(Parameter )。

当被引用的FilterKey 节点中至少有一个与RenderPassFilter 中的FilterKey 节点匹配,或者FrameGraph中不存在RenderPassFilter 时,RenderPass将使用给定的RenderState 和Parameter节点来执行ShaderProgram 。

如果渲染通道(RenderPass)定义了参数,当运行时该通道关联的任何技术(Technique)、特效(Effect)、材质(Material)、TechniqueFilter 或RenderPassFilter 中存在同名参数时,该参数将被后者覆盖。这对于定义合理的默认值仍然很有用。

在渲染时,对于 FrameGraph 中的每个叶节点,系统会通过累加 FrameGraph 分支中所有RenderStateSet 节点定义的状态来记录一个基础渲染状态。每个 RenderPass 都可以通过指定其自身的RenderState 节点来覆盖此基础渲染状态。

Technique {
    filterKeys: [
        FilterKey { name: "renderingStyle"; value: "forward" }
    ]
    graphicsApiFilter: {
        api: GraphicsApiFilter.OpenGL
        profile: GraphicsApiFilter.CoreProfile
        majorVersion: 3
        minorVersion: 1
    }
    renderPasses: [
        RenderPass {
            id: pass
            shaderProgram: ShaderProgram {
                // ...
            }
            parameters: [
                Parameter { name: "color"; value: "red" }
            ]
            renderStates: [
                DepthTest {}
            ]
        }
    ]
}

另请参阅 RenderPassFilter 、FilterKey 、Parameter 、RenderState 、Effect 以及Technique 。

属性文档

filterKeys : list<FilterKey>

保存用于启用此渲染通道的过滤器键。

parameters : list<Parameter>

存储渲染通道所使用的着色器参数值。

renderStates : list<RenderState>

保存渲染阶段所使用的渲染状态。

shaderProgram : ShaderProgram

保存用于此渲染通道的着色器程序。

© 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.