PySide6.Qt3DRender.Qt3DRender.QTechnique¶
- 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时,创建多个QTechnique节点非常有用,每个节点都有一个graphicsApiFilter设置为匹配目标GL版本之一。在运行时,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);
另请参阅
QEffectQRenderPassQTechniqueFilter注意
当使用
from __feature__ import true_property时,属性可以直接使用,否则通过访问器函数使用。- property graphicsApiFilterᅟ: QGraphicsApiFilter¶
指定正在使用的图形API过滤器
- Access functions:
- __init__([parent=None])¶
- Parameters:
parent –
QNode
- addFilterKey(filterKey)¶
- Parameters:
filterKey –
QFilterKey
将
filterKey添加到QTechnique的本地过滤键中。- addParameter(p)¶
- Parameters:
p –
QParameter
将
parameter添加到技术的参数中。- addRenderPass(pass)¶
- Parameters:
通过 –
QRenderPass
向技术添加一个
pass。- filterKeys()¶
- Return type:
返回构成
QTechnique过滤键的Qt3DCore::QFilterKey键对象列表。- graphicsApiFilter()¶
- Return type:
QGraphicsApiFilter
属性
graphicsApiFilterᅟ的获取器。- parameters()¶
- Return type:
返回当前技术参数的向量
- removeFilterKey(filterKey)¶
- Parameters:
filterKey –
QFilterKey
从
QTechnique本地过滤键中移除filterKey。- removeParameter(p)¶
- Parameters:
p –
QParameter
从技术的参数中移除
parameter。- removeRenderPass(pass)¶
- Parameters:
通过 –
QRenderPass
从技术中移除一个
pass。- renderPasses()¶
- Return type:
返回技术中包含的渲染通道列表。