- class QTechnique#
封装了技术。 更多信息…
概要#
属性#
方法#
def
__init__()
def
addFilterKey()
def
addParameter()
def
addRenderPass()
def
filterKeys()
def
parameters()
def
renderPasses()
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对片段翻译的贡献。如果您发现翻译有问题,也可以通过在 https:/bugreports.qt.io/projects/PYSIDE 上创建工单来通知我们。
详细描述#
QTechnique
定义了一组QRenderPass
对象、QFilterKey
对象、QParameter
对象和一个QGraphicsApiFilter
,它们共同定义了一个给定的图形API可以渲染的渲染技术。过滤器键由QTechniqueFilter
用于在 FrameGraph 的某些部分选择特定的技术。在QTechnique
上定义的QParameter
会覆盖在QRenderPass
中定义的具有相同名称的参数,但会被在QRenderPassFilter
、QTechniqueFilter
、QMaterial
和QEffect
中定义的参数覆盖。当创建一个针对多个图形API版本的
QEffect
时,为每个目标OpenGL版本创建几个具有不同graphicsApiFilter
的QTechnique
节点是有用的。在运行时,Qt3D渲染器将根据支持哪些图形API版本以及(如果指定)FrameGraph中满足给定QTechniqueFilter
的QFilterKey
节点来选择最合适的QTechnique
。注意
当将OpenGL用作渲染的图形API时,Qt3D会根据运行时 QSurfaceFormat::defaultFormat() 返回的 QSurfaceFormat 来决定哪个GL版本是最合适的。如果您需要自定义 QSurfaceFormat,不要忘记使用 QSurfaceFormat::setDefaultFormat() 应用它。在视图中设置 QSurfaceFormat 可能会对Qt3D相关渲染没有影响。
注意
QTechnique
节点不能被禁用。QTechnique *gl3Technique = new QTechnique(); // Create the render passes QRenderPass *firstPass = new QRenderPass(); QRenderPass *secondPass = new QRenderPass(); // Add the passes to the technique gl3Technique->addRenderPass(firstPass); gl3Technique->addRenderPass(secondPass); // Set the targeted GL version for the technique gl3Technique->graphicsApiFilter()->setApi(QGraphicsApiFilter::OpenGL); gl3Technique->graphicsApiFilter()->setMajorVersion(3); gl3Technique->graphicsApiFilter()->setMinorVersion(1); gl3Technique->graphicsApiFilter()->setProfile(QGraphicsApiFilter::CoreProfile); // Create a FilterKey QFilterKey *filterKey = new QFilterKey(); filterKey->setName(QStringLiteral("name")); fitlerKey->setValue(QStringLiteral("zFillPass")); // Add the FilterKey to the Technique gl3Technique->addFilterKey(filterKey); // Create a QParameter QParameter *colorParameter = new QParameter(QStringLiteral("color"), QColor::fromRgbF(0.0f, 0.0f, 1.0f, 1.0f)); // Add parameter to technique gl3Technique->addParameter(colorParameter);
参见
QEffect
QRenderPass
QTechniqueFilter
注意
可以使用时直接使用属性,否则通过访问器函数。
- graphicsApiFilter
指定正在使用的图形API过滤器
- 访问函数
-
QTechnique
# - 参数::
parent –
QNode
- addFilterKey
- 参数::
filterKey –
QFilterKey
将
filterKey
添加到QTechnique
的本地过滤器键。- addParameter(p)#
- 参数::
p –
QParameter
将
parameter
添加到技术的参数中。- addRenderPass(pass)#
- 参数::
pass –
QRenderPass
将一个
pass
追加到技术中。- filterKeys()#
- 返回类型:
返回组成
QTechnique
过滤器键的 Qt3DCore::QFilterKey 键对象列表。- graphicsApiFilter()#
- 返回类型:
QGraphicsApiFilter
获取属性
graphicsApiFilterᅟ
的值。- parameters()#
- 返回类型:
返回技术当前参数的向量。
- removeFilterKey(filterKey)#
- 参数::
filterKey –
QFilterKey
从
QTechnique
的本地过滤器键中删除filterKey
。- removeParameter(p)#
- 参数::
p –
QParameter
从技术的参数中删除
parameter
。- removeRenderPass(pass)#
- 参数::
pass –
QRenderPass
从技术中删除一个
pass
。- renderPasses()#
- 返回类型:
返回包含在技术中的渲染通道列表。