QMaterial Class

class Qt3DRender::QMaterial

Stellt eine abstrakte Klasse zur Verfügung, die die Basis für alle Materialkomponentenklassen in einer Szene sein sollte. Mehr...

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.