- 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);
参见
QRenderPassFilterQFilterKeyQParameterQRenderStateQEffectQTechnique注意
可以在使用
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ᅟ的通知信号。