class QRenderPass#

封装了一个渲染流。 更多...

Inheritance diagram of PySide6.Qt3DRender.Qt3DRender.QRenderPass

概要#

属性#

方法#

插槽#

信号#

注意

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

详细说明#

QRenderPass指定了一个单一渲染流 - 着色器程序执行的实例 - 由QTechnique使用。渲染流由一个QShaderProgram以及一系列QFilterKey对象、一系列QRenderState对象和一系列QParameter对象组成。

QRenderPass 具体执行 QShaderProgram ,使用提供的 QRenderStateQParameter 节点在至少一个 QFilterKey 节点被引用且与 QRenderPassFilter 中的 QFilterKey 节点相匹配,或者当没有指定 QFilterKey 节点且帧图中不存在 QRenderPassFilter 时。

如果 QRenderPass 定义了一个 QParameter ,当它在运行时存在于与该 passes 关联的任何 QTechniqueQEffectQMaterialQTechniqueFilterQRenderPassFilter 的某个 QParameter 中时,该 QParameter 将会被覆盖。这仍然可以用来定义合理的默认值。

在渲染时间,对于帧图的每个叶节点,通过累积各级 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#

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

访问函数
__init__([parent=None])#
参数:

parentQNode

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

addFilterKey(filterKey)
参数:

filterKeyQFilterKey

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

addParameter(p)
参数:

pQParameter

parameter 添加到渲染节点的参数中。

addRenderState(state)
参数:

stateQRenderState

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

注意

在某个过程中未定义任何 QRenderState,会导致该过程使用全局设置的渲染状态来处理给定的 FrameGraph 分支执行路径。

filterKeys()
返回类型::

Qt3DRender.QFilterKey 的列表

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

parameters()
返回类型::

Qt3DRender.QParameter 的列表

返回当前渲染过程的参数向量。

removeFilterKey(filterKey)
参数:

filterKeyQFilterKey

QRenderPass 的本地过滤键中删除 filterKey

removeParameter(p)
参数:

pQParameter

从渲染过程的参数中删除 parameter

removeRenderState(state)
参数:

stateQRenderState

QRenderPass 的本地渲染状态中删除 state

renderStates()#
返回类型::

.Qt3DRender.QRenderState对象列表

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

setShaderProgram(shaderProgram)#
参数:

shaderProgramQShaderProgram

参见

shaderProgram()

属性shaderProgramᅟ的设置器。

shaderProgram()#
返回类型::

QShaderProgram

参见

setShaderProgram()

属性shaderProgramᅟ的获取器。

shaderProgramChanged(shaderProgram)#
参数:

shaderProgramQShaderProgram

属性shaderProgramᅟ的通知信号。