Qt3DRender::QMaterial Class
class Qt3DRender::QMaterialFournit une classe abstraite qui devrait être la base de toutes les classes de composants matériels dans une scène. Plus d'informations...
| En-tête : | #include <QMaterial> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS 3drender)target_link_libraries(mytarget PRIVATE Qt6::3drender) |
| qmake : | QT += 3drender |
| En QML : | Material |
| Hérite : | Qt3DCore::QComponent |
| Héritée par : | 12 typesQt3DExtras::QDiffuseMapMaterial, Qt3DExtras::QDiffuseSpecularMapMaterial, Qt3DExtras::QDiffuseSpecularMaterial, Qt3DExtras::QGoochMaterial, Qt3DExtras::QMetalRoughMaterial, Qt3DExtras::QMorphPhongMaterial, Qt3DExtras::QNormalDiffuseMapMaterial, Qt3DExtras::QNormalDiffuseSpecularMapMaterial, Qt3DExtras::QPerVertexColorMaterial, Qt3DExtras::QPhongAlphaMaterial, Qt3DExtras::QPhongMaterial, et Qt3DExtras::QTextureMaterial |
| Status : | Déclassé |
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.