Sur cette page

Qt3DRender::QMaterial Class

class Qt3DRender::QMaterial

Fournit une classe abstraite qui doit servir de base à toutes les classes de composants matériels d'une scène. En savoir plus...

Cette classe est obsolète. Nous vous déconseillons fortement de l'utiliser dans du nouveau code.

Propriétés

  • effect : Qt3DRender::QEffect*

Fonctions publiques

void addParameter(Qt3DRender::QParameter *parameter)
Qt3DRender::QEffect *effect() const
QList<Qt3DRender::QParameter *> parameters() const
void removeParameter(Qt3DRender::QParameter *parameter)

Emplacements publics

void setEffect(Qt3DRender::QEffect *effect)

Signaux

void effectChanged(Qt3DRender::QEffect *effect)

Description détaillée

QMaterial permet de spécifier le rendu d'un entity. N'importe quel aspect peut définir sa propre sous-classe de QMaterial afin qu'un Material puisse être utilisé pour décrire un élément visuel ; par exemple, la façon dont le son doit se répercuter sur un élément, la température d'une surface, etc.

En soi, un QMaterial ne fait rien. Ce n’est que lorsqu’il fait référence à un nœud d’ QEffect qu’un QMaterial devient utile.

En pratique, il arrive souvent qu’un même « QEffect » soit référencé par plusieurs composants QMaterial. Cela permet de ne créer les effets, les techniques, les passes et les shaders qu’une seule fois, tout en permettant de spécifier le matériau en ajoutant des instances d’ QParameter.

Un « QParameter » défini sur un QMaterial remplace le paramètre (du même nom) défini dans un QEffect, QTechnique et QRenderPass, mais est lui-même remplacé par le paramètre défini dans QRenderPassFilter et QTechniqueFilter.

QMaterial *material1 = new QMaterial();
QMaterial *material2 = new QMaterial();

// Create effect, technique, render pass and shader
QEffect *effect = new QEffect();
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);

// Set the effect on the materials
material1->setEffect(effect);
material2->setEffect(effect);

// Set different parameters on the materials
const QString parameterName = QStringLiteral("color");
material1->addParameter(new QParameter(parameterName, QColor::fromRgbF(0.0f, 1.0f, 0.0f, 1.0f)));
material2->addParameter(new QParameter(parameterName, QColor::fromRgbF(1.0f, 1.0f, 1.0f, 1.0f)));

Voir également QEffect, QTechnique et QParameter.

Documentation sur les propriétés

effect : Qt3DRender::QEffect*

Spécifie l'effet à appliquer au matériau.

Fonctions d'accès :

Qt3DRender::QEffect *effect() const
void setEffect(Qt3DRender::QEffect *effect)

Signal de notification :

void effectChanged(Qt3DRender::QEffect *effect)

Documentation des fonctions membres

void QMaterial::addParameter(Qt3DRender::QParameter *parameter)

Ajoutez une « parameter » aux paramètres du matériau.

QList<Qt3DRender::QParameter *> QMaterial::parameters() const

Renvoie un vecteur contenant les paramètres actuels du matériau.

void QMaterial::removeParameter(Qt3DRender::QParameter *parameter)

Supprimer une « parameter » des paramètres du matériau.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.