PySide6.Qt3DRender.Qt3DRender.QEffect

class QEffect

Qt 3D场景中效果的基础类。更多

PySide6.Qt3DRender.Qt3DRender.QEffect 的继承图

概要

方法

注意

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

详细描述

QEffect 类结合了一组技术及其使用的参数,用于为材质生成渲染效果。

一个QEffect实例应尽可能在多个QMaterial实例之间共享。

注意

QEffect 节点不能被禁用。

QEffect *effect = new QEffect();

// Create technique, render pass and shader
QTechnique *gl3Technique = new QTechnique();
QRenderPass *gl3Pass = new QRenderPass();
QShaderProgram *glShader = new QShaderProgram();

// Set the shader on the render pass
gl3Pass->setShaderProgram(glShader);

// Add the pass to the technique
gl3Technique->addRenderPass(gl3Pass);

// 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);

// Add the technique to the effect
effect->addTechnique(gl3Technique);

QEffect上定义的QParameter会覆盖在QTechniqueQRenderPass中定义的(同名)参数,但会被QRenderPassFilterQTechniqueFilterQMaterial中的参数覆盖。

另请参阅

QMaterial QTechnique QParameter

__init__([parent=None])
Parameters:

parentQNode

addParameter(parameter)
Parameters:

参数QParameter

parameter添加到效果中。它会向后端发送更新。parameter将用于在此效果使用的着色器中设置相应的统一值。

addTechnique(t)
Parameters:

tQTechnique

向效果添加一种新技术 t。它会向后端发送更新。

parameters()
Return type:

Qt3DRender.QParameter的列表

返回效果使用的参数列表。

removeParameter(parameter)
Parameters:

参数QParameter

从效果中移除一个参数 parameter

removeTechnique(t)
Parameters:

tQTechnique

从效果中移除一个技术 t

techniques()
Return type:

Qt3DRender.QTechnique的列表

返回效果所使用的技术列表。