QMaterial Class
class Qt3DRender::QMaterialStellt eine abstrakte Klasse zur Verfügung, die die Basis für alle Materialkomponentenklassen in einer Szene sein sollte. Mehr...
Kopfzeile: | #include <QMaterial> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS 3drender) target_link_libraries(mytarget PRIVATE Qt6::3drender) |
qmake: | QT += 3drender |
In QML: | Material |
Vererbt: | Qt3DCore::QComponent |
Geerbt von: | 12 TypenQt3DExtras::QDiffuseMapMaterial, Qt3DExtras::QDiffuseSpecularMapMaterial, Qt3DExtras::QDiffuseSpecularMaterial, Qt3DExtras::QGoochMaterial, Qt3DExtras::QMetalRoughMaterial, Qt3DExtras::QMorphPhongMaterial, Qt3DExtras::QNormalDiffuseMapMaterial, Qt3DExtras::QNormalDiffuseSpecularMapMaterial, Qt3DExtras::QPerVertexColorMaterial, Qt3DExtras::QPhongAlphaMaterial, Qt3DExtras::QPhongMaterial, und Qt3DExtras::QTextureMaterial |
Status: | Deprecated |
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) |
Detaillierte Beschreibung
QMaterial bietet eine Möglichkeit, die Darstellung eines entity zu spezifizieren. Jeder Aspekt kann seine eigene Unterklasse von QMaterial definieren, so dass ein Material verwendet werden kann, um ein visuelles Element zu beschreiben; zum Beispiel die Art und Weise, wie Schall von einem Element reflektiert werden soll, die Temperatur einer Oberfläche usw.
An sich tut ein QMaterial nichts. Nur wenn es auf einen QEffect Knoten verweist, wird ein QMaterial nützlich.
In der Praxis kommt es häufig vor, dass ein einziges QEffect von mehreren QMaterial-Komponenten referenziert wird. Dies ermöglicht es, den Effekt, die Techniken, die Übergänge und die Shader nur einmal zu erstellen, während das Material durch Hinzufügen von QParameter Instanzen spezifiziert werden kann.
Ein QParameter, das in einem QMaterial definiert ist, überschreibt die (gleichnamigen) Parameter, die in QEffect, QTechnique und QRenderPass definiert sind, aber durch Parameter in QRenderPassFilter und QTechniqueFilter überschrieben werden.
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 der Eigenschaft
effect : Qt3DRender::QEffect*
Gibt den Effekt an, der mit dem Material verwendet werden soll.
Zugriffsfunktionen:
Qt3DRender::QEffect * | effect() const |
void | setEffect(Qt3DRender::QEffect *effect) |
Melder-Signal:
void | effectChanged(Qt3DRender::QEffect *effect) |
Member Function Dokumentation
void QMaterial::addParameter(Qt3DRender::QParameter *parameter)
Fügen Sie eine parameter zu den Parametern des Materials hinzu.
QList<Qt3DRender::QParameter *> QMaterial::parameters() const
Gibt einen Vektor der aktuellen Parameter des Materials zurück
void QMaterial::removeParameter(Qt3DRender::QParameter *parameter)
Entfernen Sie eine parameter aus den Parametern des Materials.
© 2025 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.