- class QRenderPass#
封装了一个渲染流。 更多...
概要#
属性#
方法#
def __init__()
def addFilterKey()
def addParameter()
def addRenderState()
def filterKeys()
def parameters()
def renderStates()
def
shaderProgram()
插槽#
信号#
注意
此文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对片段翻译的贡献。如果您发现翻译存在问题,也可以通过在https:/bugreports.qt.io/projects/PYSIDE上创建一个问题单来告诉我们。
详细说明#
QRenderPass
指定了一个单一渲染流 - 着色器程序执行的实例 - 由QTechnique
使用。渲染流由一个QShaderProgram
以及一系列QFilterKey
对象、一系列QRenderState
对象和一系列QParameter
对象组成。QRenderPass
具体执行QShaderProgram
,使用提供的QRenderState
和QParameter
节点在至少一个QFilterKey
节点被引用且与QRenderPassFilter
中的QFilterKey
节点相匹配,或者当没有指定QFilterKey
节点且帧图中不存在QRenderPassFilter
时。如果
QRenderPass
定义了一个QParameter
,当它在运行时存在于与该 passes 关联的任何QTechnique
、QEffect
、QMaterial
、QTechniqueFilter
、QRenderPassFilter
的某个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])#
- 参数:
parent –
QNode
使用指定的
parent
构造一个新的QRenderPass
对象。- addFilterKey(filterKey)
- 参数:
filterKey –
QFilterKey
将
filterKey
添加到QRenderPass
节点的本地过滤键中。- addParameter(p)
- 参数:
p –
QParameter
将
parameter
添加到渲染节点的参数中。- addRenderState(state)
- 参数:
state –
QRenderState
将一个渲染状态添加到渲染过程中。这意味着当过程在渲染时执行时,将修改全局设置的渲染状态,由
QRenderPass
定义的本地状态。注意
在某个过程中未定义任何
QRenderState
,会导致该过程使用全局设置的渲染状态来处理给定的 FrameGraph 分支执行路径。- filterKeys()
- 返回类型::
返回组成
QRenderPass
过滤键的QFilterKey
对象列表。- parameters()
- 返回类型::
返回当前渲染过程的参数向量。
- removeFilterKey(filterKey)
- 参数:
filterKey –
QFilterKey
从
QRenderPass
的本地过滤键中删除filterKey
。- removeParameter(p)
- 参数:
p –
QParameter
从渲染过程的参数中删除
parameter
。- removeRenderState(state)
- 参数:
state –
QRenderState
从
QRenderPass
的本地渲染状态中删除state
。- renderStates()#
- 返回类型::
.Qt3DRender.QRenderState对象列表
返回构成
QRenderPass
渲染状态的QRenderState
状态对象的列表。- setShaderProgram(shaderProgram)#
- 参数:
shaderProgram –
QShaderProgram
参见
shaderProgram()
属性
shaderProgramᅟ
的设置器。- shaderProgram()#
- 返回类型::
QShaderProgram
参见
setShaderProgram()
属性
shaderProgramᅟ
的获取器。- shaderProgramChanged(shaderProgram)#
- 参数:
shaderProgram –
QShaderProgram
属性
shaderProgramᅟ
的通知信号。