QEffect#

The base class for effects in a Qt 3D scene. More

Inheritance diagram of PySide6.Qt3DRender.Qt3DRender.QEffect

Synopsis#

Functions#

Note

This documentation may contain snippets that were automatically translated from C++ to Python. We always welcome contributions to the snippet translation. If you see an issue with the translation, you can also let us know by creating a ticket on https:/bugreports.qt.io/projects/PYSIDE

Detailed Description#

The QEffect class combines a set of techniques and parameters used by those techniques to produce a rendering effect for a material.

An QEffect instance should be shared among several QMaterial instances when possible.

Note

QEffect node can not be disabled.

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

A QParameter defined on a QEffect overrides parameter (of the same name) defined in QTechnique and QRenderPass , but are overridden by parameter in QRenderPassFilter , QTechniqueFilter and QMaterial .

See also

QMaterial QTechnique QParameter

class PySide6.Qt3DRender.Qt3DRender.QEffect([parent=None])#
Parameters:

parentPySide6.Qt3DCore.Qt3DCore.QNode

PySide6.Qt3DRender.Qt3DRender.QEffect.addParameter(parameter)#
Parameters:

parameterPySide6.Qt3DRender.Qt3DRender.QParameter

Adds parameter to the effect. It sends an update to the backend. The parameter will be used to set a corresponding uniform value in the shader used by this effect.

PySide6.Qt3DRender.Qt3DRender.QEffect.addTechnique(t)#
Parameters:

tPySide6.Qt3DRender.Qt3DRender.QTechnique

Adds a new technique t to the effect. It sends an update to the backend.

PySide6.Qt3DRender.Qt3DRender.QEffect.parameters()#
Return type:

.list of Qt3DRender.QParameter

Returns the list of parameters used by the effect.

PySide6.Qt3DRender.Qt3DRender.QEffect.removeParameter(parameter)#
Parameters:

parameterPySide6.Qt3DRender.Qt3DRender.QParameter

Removes a parameter parameter from the effect.

PySide6.Qt3DRender.Qt3DRender.QEffect.removeTechnique(t)#
Parameters:

tPySide6.Qt3DRender.Qt3DRender.QTechnique

Removes a technique t from the effect.

PySide6.Qt3DRender.Qt3DRender.QEffect.techniques()#
Return type:

.list of Qt3DRender.QTechnique

Returns the list of techniques used by the effect.