PySide6.Qt3DRender.Qt3DRender.QRenderPass¶
- 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使用给定的QRenderState和QParameter节点执行QShaderProgram,当至少有一个被引用的QFilterKey节点与QRenderPassFilter中的任何QFilterKey节点匹配时,或者当没有指定QFilterKey节点且 FrameGraph 中不存在QRenderPassFilter时。如果
QRenderPass定义了一个QParameter,它将被运行时与pass关联的任何QTechnique、QEffect、QMaterial、QTechniqueFilter、QRenderPassFilter中具有相同名称的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);
另请参阅
QRenderPassFilterQFilterKeyQParameterQRenderStateQEffectQTechnique注意
当使用
from __feature__ import true_property时,属性可以直接使用,否则通过访问器函数使用。- property shaderProgramᅟ: QShaderProgram¶
指定用于此渲染过程的着色器程序。
- Access functions:
- __init__([parent=None])¶
- Parameters:
parent –
QNode
使用指定的
parent构造一个新的QRenderPass。- addFilterKey(filterKey)¶
- Parameters:
filterKey –
QFilterKey
将
filterKey添加到QRenderPass的本地过滤键中。- addParameter(p)¶
- Parameters:
p –
QParameter
将
parameter添加到渲染通道的参数中。- addRenderState(state)¶
- Parameters:
状态 –
QRenderState
向渲染过程添加一个渲染
state。这意味着当在渲染时执行该过程时,全局设置的渲染状态将被QRenderPass本地定义的状态修改。注意
不在一个pass中定义任何
QRenderState将导致该pass使用为给定FrameGraph分支执行路径全局设置的渲染状态。- filterKeys()¶
- Return type:
返回构成
QRenderPass过滤器键的QFilterKey键对象列表。- parameters()¶
- Return type:
返回渲染通道当前参数的向量
- removeFilterKey(filterKey)¶
- Parameters:
filterKey –
QFilterKey
从
QRenderPass本地过滤键中移除filterKey。- removeParameter(p)¶
- Parameters:
p –
QParameter
从渲染通道的参数中移除
parameter。- removeRenderState(state)¶
- Parameters:
状态 –
QRenderState
从
QRenderPass本地渲染状态中移除state。- renderStates()¶
- Return type:
返回构成
QRenderPass渲染状态的QRenderState状态对象列表。- setShaderProgram(shaderProgram)¶
- Parameters:
shaderProgram –
QShaderProgram
另请参阅
shaderProgram()
属性
shaderProgramᅟ的设置器。- shaderProgram()¶
- Return type:
QShaderProgram
另请参阅
setShaderProgram()
属性
shaderProgramᅟ的获取器。- shaderProgramChanged(shaderProgram)¶
- Parameters:
shaderProgram –
QShaderProgram
属性
shaderProgramᅟ的通知信号。