QEffect Class▲
-
Header: QEffect
-
Since: Qt 5.7
-
CMake:
find_package(Qt6 REQUIRED COMPONENTS 3drender)
target_link_libraries(mytarget PRIVATE Qt6::3drender)
-
qmake: QT += 3drender
-
Inherited By:
-
Instantiated By: qml-qt3d-render-effect.xml
-
Inherits: Qt3DCore::QNode
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.
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-&
gt;setShaderProgram(glShader);
// Add the pass to the technique
gl3Technique-&
gt;addRenderPass(gl3Pass);
// Set the targeted GL version for the technique
gl3Technique-&
gt;graphicsApiFilter()-&
gt;setApi(QGraphicsApiFilter::
OpenGL);
gl3Technique-&
gt;graphicsApiFilter()-&
gt;setMajorVersion(3
);
gl3Technique-&
gt;graphicsApiFilter()-&
gt;setMinorVersion(1
);
gl3Technique-&
gt;graphicsApiFilter()-&
gt;setProfile(QGraphicsApiFilter::
CoreProfile);
// Add the technique to the effect
effect-&
gt;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▲
See also QMaterial, QTechnique, QParameter
Member Function Documentation▲
void QEffect::addParameter(Qt3DRender::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(Qt3DRender::QTechnique *t)▲
Adds a new technique t to the effect. It sends an update to the backend.
QList<Qt3DRender::QParameter *> QEffect::parameters() const▲
Returns the list of parameters used by the effect.
void QEffect::removeParameter(Qt3DRender::QParameter *parameter)▲
Removes a parameter parameter from the effect.
void QEffect::removeTechnique(Qt3DRender::QTechnique *t)▲
Removes a technique t from the effect.
QList<Qt3DRender::QTechnique *> QEffect::techniques() const▲
Returns the list of techniques used by the effect.