Sur cette page

Qt3DRender::QMaterial Class

class Qt3DRender::QMaterial

Fournit une classe abstraite qui devrait être la base de toutes les classes de composants matériels dans une scène. Plus d'informations...

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 élément entity. Tout aspect peut définir sa propre sous-classe de QMaterial de sorte qu'un Material puisse être utilisé pour décrire un élément visuel ; par exemple, la façon dont le son doit se refléter sur un élément, la température d'une surface, et ainsi de suite.

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

Dans la pratique, il arrive souvent qu'un seul QEffect soit référencé par plusieurs composants QMaterial. Cela permet de ne créer l'effet, les techniques, les passes et les shaders qu'une seule fois tout en permettant de spécifier le matériau en ajoutant des instances QParameter.

Un QParameter défini sur un QMaterial remplace les paramètres (du même nom) définis dans les QEffect, QTechnique et QRenderPass, mais ils sont remplacés par des paramètres dans les 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 à utiliser avec le matériau.

Fonctions d'accès :

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

Signal du notificateur :

void effectChanged(Qt3DRender::QEffect *effect)

Member Function Documentation

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

Ajouter une adresse parameter aux paramètres du matériau.

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

Renvoie un vecteur des paramètres actuels du matériau

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

Supprimer un 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.