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.

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.