- Qt 5.15
- Qt 3D
- C++ Classes
- QEffect
- Qt 5.15.19 Reference Documentation

# QEffect Class

class Qt3DRender::QEffect

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

Header: | #include <QEffect>
qmake: | QT += 3drender
Since: | Qt 5.7
Instantiated By: | Effect
Inherits: | Qt3DCore::QNode

This class was introduced in Qt 5.7.

- List of all members, including inherited members

## Public Functions

void | addParameter(QParameter *parameter)
void | addTechnique(QTechnique *t)
QVector<QParameter *> | parameters() const
void | removeParameter(QParameter *parameter)
void | removeTechnique(QTechnique *t)
QVector<QTechnique *> | techniques() const

## 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, and QParameter.

## Member Function Documentation

### void QEffect::addParameter(QParameter *parameter)

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.

### void QEffect::addTechnique(QTechnique *t)

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

### QVector<QParameter *> QEffect::parameters() const

Returns the list of parameters used by the effect.

### void QEffect::removeParameter(QParameter *parameter)

Removes a parameter parameter from the effect.

### void QEffect::removeTechnique(QTechnique *t)

Removes a technique t from the effect.

### QVector<QTechnique *> QEffect::techniques() const

Returns the list of techniques used by the effect.