class QTechnique#

封装了技术。 更多信息

Inheritance diagram of PySide6.Qt3DRender.Qt3DRender.QTechnique

概要#

属性#

方法#

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对片段翻译的贡献。如果您发现翻译有问题,也可以通过在 https:/bugreports.qt.io/projects/PYSIDE 上创建工单来通知我们。

详细描述#

QTechnique 定义了一组 QRenderPass 对象、QFilterKey 对象、QParameter 对象和一个 QGraphicsApiFilter,它们共同定义了一个给定的图形API可以渲染的渲染技术。过滤器键由 QTechniqueFilter 用于在 FrameGraph 的某些部分选择特定的技术。在 QTechnique 上定义的 QParameter 会覆盖在 QRenderPass 中定义的具有相同名称的参数,但会被在 QRenderPassFilterQTechniqueFilterQMaterialQEffect 中定义的参数覆盖。

当创建一个针对多个图形API版本的 QEffect 时,为每个目标OpenGL版本创建几个具有不同 graphicsApiFilterQTechnique 节点是有用的。在运行时,Qt3D渲染器将根据支持哪些图形API版本以及(如果指定)FrameGraph中满足给定 QTechniqueFilterQFilterKey 节点来选择最合适的 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
参数::

filterKeyQFilterKey

filterKey 添加到 QTechnique 的本地过滤器键。

addParameter(p)#
参数::

pQParameter

parameter 添加到技术的参数中。

addRenderPass(pass)#
参数::

passQRenderPass

将一个 pass 追加到技术中。

filterKeys()#
返回类型:

. Qt3DRender.QFilterKey 列表

返回组成 QTechnique 过滤器键的 Qt3DCore::QFilterKey 键对象列表。

graphicsApiFilter()#
返回类型:

QGraphicsApiFilter

获取属性 graphicsApiFilterᅟ 的值。

parameters()#
返回类型:

. Qt3DRender.QParameter 列表

返回技术当前参数的向量。

removeFilterKey(filterKey)#
参数::

filterKeyQFilterKey

QTechnique 的本地过滤器键中删除 filterKey

removeParameter(p)#
参数::

pQParameter

从技术的参数中删除 parameter

removeRenderPass(pass)#
参数::

passQRenderPass

从技术中删除一个 pass

renderPasses()#
返回类型:

. Qt3DRender.QRenderPass 列表

返回包含在技术中的渲染通道列表。