在本页

RenderPass QML Type

RenderPass 类型定义了用于渲染 3D 内容的自定义渲染通行证。更多

Import Statement: import QtQuick3D
Since: Qt 6.11
Inherits:

Object3D

属性

详细说明

通过 RenderPass,您可以在渲染管道中定义自定义渲染步骤。您可以指定各种属性,如透明色、材质模式和覆盖材质。此外,你还可以定义一个渲染命令列表,以指定渲染的执行方式。

向着色器公开数据

与 "效果 "和 "自定义材质 "一样,RenderPass 也会自动向着色器公开和更新用户定义的属性。

属性文档

augmentShader : url

materialMode 设置为AugmentMaterial 时,该属性将保存用于渲染传递的增强着色器 URL。

着色器文件应包含一个具有以下签名的函数:

void MAIN_FRAGMENT_AUGMENT() {
    // Custom shader code here
}

此函数将与此渲染传递中被渲染对象所使用材质的现有片段着色器相结合。允许用户使用自定义代码增强现有的材质着色器。

clearColor : color [default: Qt.black]

该属性用于保存渲染传递的透明色。

commands : list<RenderCommand>

此属性包含渲染传递的渲染命令列表。

列表中的命令会按照它们在列表中出现的顺序执行。

注: RenderPass 和 Effects 的命令相似但不相同,只有那些标记为兼容的命令才能与此RenderPass 一起使用。

另请参阅 renderTargetBlend,PipelineStateOverride,RenderablesFilter,RenderPassTexture,ColorAttachment,DepthTextureAttachment,DepthStencilAttachmentAddDefine

depthClearValue : real [default: 1.0]

此属性用于保存渲染传递的深度清除值。

materialMode : RenderPass::MaterialModes [default: RenderPass.OriginalMaterial]

此属性用于保存渲染传递的材质模式。

常量说明
RenderPass.OriginalMaterial使用对象的原始材质。
RenderPass.AugmentMaterial使用自定义着色器代码增强原始材质。
RenderPass.OverrideMaterial使用用户指定的material 替换原始材质。

overrideMaterial : Material

materialMode 设置为OverrideMaterial 时,此属性将保存用于渲染传递的覆盖材质。

passMode : RenderPass::PassMode [default: RenderPass.UserPass]

此属性用于保存渲染传递的传递模式。

除了标准的用户渲染通道外,Qt Quick 3D 还支持用户手动触发内部渲染通道,以渲染天空盒和 2D 项目。

常数说明
RenderPass.UserPass用户指定的渲染传递。
RenderPass.SkyboxPassQt Quick 3D 的内置天空盒渲染通道。
RenderPass.Item2DPassQt Quick 3D 内置的 2D 项目渲染通道。

renderTargetFlags : RenderPass::RenderTargetFlags [default: RenderPass.RenderTargetFlags.None]

此属性用于保存渲染传递的渲染目标标志。

可能的值有

常量说明
RenderPass.RenderTargetFlags.None无特殊行为。
RenderPass.RenderTargetFlags.PreserveColorContents在帧间保留渲染目标的颜色内容。
RenderPass.RenderTargetFlags.PreserveDepthStencilContents在帧间保存渲染目标的深度和模板内容。
RenderPass.RenderTargetFlags.DoNotStoreDepthStencilContents渲染后不存储渲染目标的深度和模板内容。

另请参阅 QRhiTextureRenderTarget::Flags

stencilClearValue : int [default: 0]

该属性用于保存渲染传递的模板清除值。

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