Qt3DRender::QMaterial Class
class Qt3DRender::QMaterialStellt eine abstrakte Klasse bereit, die als Basis für alle Materialkomponentenklassen in einer Szene dienen soll. Mehr...
| Header: | #include <qmaterial.h> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS 3drender) target_link_libraries(mytarget PRIVATE Qt6::3drender) |
| qmake: | QT += 3drender |
| In QML: | Material |
| Erbt von: | Qt3DCore::QComponent |
| Vererbt an: | 12 TypenQt3DExtras::QDiffuseMapMaterial, Qt3DExtras::QDiffuseSpecularMapMaterial, Qt3DExtras::QDiffuseSpecularMaterial, Qt3DExtras::QGoochMaterial, Qt3DExtras::QMetalRoughMaterial, Qt3DExtras::QMorphPhongMaterial, Qt3DExtras::QNormalDiffuseMapMaterial, Qt3DExtras::QNormalDiffuseSpecularMapMaterial, Qt3DExtras::QPerVertexColorMaterial, Qt3DExtras::QPhongAlphaMaterial, Qt3DExtras::QPhongMaterial sowie Qt3DExtras::QTextureMaterial |
| Status: | Veraltet |
Diese Klasse ist veraltet. Wir raten dringend davon ab, sie in neuem Code zu verwenden.
Eigenschaften
- effect : Qt3DRender::QEffect*
Öffentliche Funktionen
| void | addParameter(Qt3DRender::QParameter *parameter) |
| Qt3DRender::QEffect * | effect() const |
| QList<Qt3DRender::QParameter *> | parameters() const |
| void | removeParameter(Qt3DRender::QParameter *parameter) |
Öffentliche Slots
| void | setEffect(Qt3DRender::QEffect *effect) |
Signale
| void | effectChanged(Qt3DRender::QEffect *effect) |
Ausführliche Beschreibung
QMaterial bietet eine Möglichkeit, die Darstellung eines „ entity “ festzulegen. Jeder Aspekt kann eine eigene Unterklasse von QMaterial definieren, sodass ein Material zur Beschreibung eines visuellen Elements verwendet werden kann; beispielsweise die Art und Weise, wie Schall von einem Element reflektiert werden soll, die Temperatur einer Oberfläche und so weiter.
An sich führt ein QMaterial keine Aktion aus. Erst wenn es auf einen „ QEffect “-Knoten verweist, wird ein QMaterial nützlich.
In der Praxis kommt es häufig vor, dass ein einzelnes „ QEffect “ von mehreren QMaterial-Komponenten referenziert wird. Dies ermöglicht es, Effekte, Techniken, Durchgänge und Shader nur einmal zu erstellen, während das Material durch Hinzufügen von „ QParameter “-Instanzen festgelegt werden kann.
Ein in einem QMaterial definierter „ QParameter “-Parameter überschreibt Parameter (mit demselben Namen), die in „ QEffect “, „ QTechnique “ und „ QRenderPass “ definiert sind, wird jedoch von Parametern in „ QRenderPassFilter “ und „ QTechniqueFilter “ überschrieben.
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)));Siehe auch QEffect, QTechnique und QParameter.
Dokumentation zu den Eigenschaften
effect : Qt3DRender::QEffect*
Legt den Effekt fest, der für das Material verwendet werden soll.
Zugriffsfunktionen:
| Qt3DRender::QEffect * | effect() const |
| void | setEffect(Qt3DRender::QEffect *effect) |
Benachrichtigungssignal:
| void | effectChanged(Qt3DRender::QEffect *effect) |
Dokumentation der Mitgliedsfunktionen
void QMaterial::addParameter(Qt3DRender::QParameter *parameter)
Fügen Sie den Materialparametern einen „ parameter “ hinzu.
QList<Qt3DRender::QParameter *> QMaterial::parameters() const
Gibt einen Vektor mit den aktuellen Parametern des Materials zurück
void QMaterial::removeParameter(Qt3DRender::QParameter *parameter)
Entfernen Sie „ parameter “ aus den Materialparametern.
© 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.