PySide6.Qt3DRender.Qt3DRender.QRenderPass

class QRenderPass

封装一个渲染过程。更多

PySide6.Qt3DRender.Qt3DRender.QRenderPass 的继承图

概要

属性

方法

插槽

信号

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

一个QRenderPass指定了一个单一的渲染过程——着色器程序执行的一个实例——由QTechnique使用。渲染过程包括一个QShaderProgram和一系列QFilterKey对象,一系列QRenderState对象以及一系列QParameter对象。

QRenderPass 使用给定的 QRenderStateQParameter 节点执行 QShaderProgram,当至少有一个被引用的 QFilterKey 节点与 QRenderPassFilter 中的任何 QFilterKey 节点匹配时,或者当没有指定 QFilterKey 节点且 FrameGraph 中不存在 QRenderPassFilter 时。

如果QRenderPass定义了一个QParameter,它将被运行时与pass关联的任何QTechniqueQEffectQMaterialQTechniqueFilterQRenderPassFilter中具有相同名称的QParameter覆盖。这仍然有助于定义合理的默认值。

在渲染时,对于FrameGraph的每个叶节点,通过累积FrameGraph分支中所有QRenderStateSet节点定义的状态来记录基础渲染状态。每个QRenderPass可以通过指定自己的QRenderState节点来重载这个基础渲染状态。

// Create the render passes
QRenderPass *pass = new QRenderPass();

// Create shader program
QShaderProgram *glShader = new QShaderProgram();

// Set the shader on the render pass
pass->setShaderProgram(glShader);

// Create a FilterKey
QFilterKey *filterKey = new QFilterKey();
filterKey->setName(QStringLiteral("name"));
fitlerKey->setValue(QStringLiteral("zFillPass"));

// Add the FilterKey to the pass
pass->addFilterKey(filterKey);

// Create a QParameter
QParameter *colorParameter = new QParameter(QStringLiteral("color"), QColor::fromRgbF(0.0f, 0.0f, 1.0f, 1.0f));

// Add parameter to pass
pass->addParameter(colorParameter);

// Create a QRenderState
QDepthTest *depthTest = new QDepthTest();

// Add the render state to the pass
pass->addRenderState(depthTest);

另请参阅

QRenderPassFilter QFilterKey QParameter QRenderState QEffect QTechnique

注意

当使用from __feature__ import true_property时,属性可以直接使用,否则通过访问器函数使用。

property shaderProgramᅟ: QShaderProgram

指定用于此渲染过程的着色器程序。

Access functions:
__init__([parent=None])
Parameters:

parentQNode

使用指定的parent构造一个新的QRenderPass

addFilterKey(filterKey)
Parameters:

filterKeyQFilterKey

filterKey添加到QRenderPass的本地过滤键中。

addParameter(p)
Parameters:

pQParameter

parameter添加到渲染通道的参数中。

addRenderState(state)
Parameters:

状态QRenderState

向渲染过程添加一个渲染state。这意味着当在渲染时执行该过程时,全局设置的渲染状态将被QRenderPass本地定义的状态修改。

注意

不在一个pass中定义任何QRenderState将导致该pass使用为给定FrameGraph分支执行路径全局设置的渲染状态。

filterKeys()
Return type:

Qt3DRender.QFilterKey的列表

返回构成QRenderPass过滤器键的QFilterKey键对象列表。

parameters()
Return type:

Qt3DRender.QParameter的列表

返回渲染通道当前参数的向量

removeFilterKey(filterKey)
Parameters:

filterKeyQFilterKey

QRenderPass 本地过滤键中移除 filterKey

removeParameter(p)
Parameters:

pQParameter

从渲染通道的参数中移除 parameter

removeRenderState(state)
Parameters:

状态QRenderState

QRenderPass 本地渲染状态中移除 state

renderStates()
Return type:

Qt3DRender.QRenderState的列表

返回构成QRenderPass渲染状态的QRenderState状态对象列表。

setShaderProgram(shaderProgram)
Parameters:

shaderProgramQShaderProgram

另请参阅

shaderProgram()

属性 shaderProgramᅟ 的设置器。

shaderProgram()
Return type:

QShaderProgram

另请参阅

setShaderProgram()

属性 shaderProgramᅟ 的获取器。

shaderProgramChanged(shaderProgram)
Parameters:

shaderProgramQShaderProgram

属性 shaderProgramᅟ 的通知信号。