En esta página

Qt3DRender::QMaterial Class

class Qt3DRender::QMaterial

Proporciona una clase abstracta que debe ser la base de todas las clases de componentes materiales en una escena. Más...

Propiedades

  • effect : Qt3DRender::QEffect*

Funciones públicas

void addParameter(Qt3DRender::QParameter *parameter)
Qt3DRender::QEffect *effect() const
QList<Qt3DRender::QParameter *> parameters() const
void removeParameter(Qt3DRender::QParameter *parameter)

Ranuras públicas

void setEffect(Qt3DRender::QEffect *effect)

Señales

void effectChanged(Qt3DRender::QEffect *effect)

Descripción detallada

QMaterial proporciona una manera de especificar el renderizado de un entity. Cualquier aspecto puede definir su propia subclase de QMaterial de manera que un Material puede ser utilizado para describir un elemento visual; por ejemplo, la forma en que el sonido debe reflejarse en un elemento, la temperatura de una superficie, etc.

En sí mismo, un QMaterial no hace nada. Sólo es útil cuando hace referencia a un nodo de QEffect.

En la práctica, a menudo sucede que un solo QEffect está siendo referenciado por varios componentes QMaterial. Esto permite crear el efecto, las técnicas, los pases y los shaders una sola vez, a la vez que permite especificar el material añadiendo instancias de QParameter.

Un QParameter definido en un QMaterial anula parámetro (del mismo nombre) definido en un QEffect, QTechnique y QRenderPass, pero son anulados por parámetro en QRenderPassFilter y 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)));

Ver también QEffect, QTechnique, y QParameter.

Documentación de propiedades

effect : Qt3DRender::QEffect*

Especifica el efecto que se utilizará con el material.

Funciones de acceso:

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

Señal notificadora:

void effectChanged(Qt3DRender::QEffect *effect)

Documentación de la función miembro

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

Añade un parameter a los parámetros del material.

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

Devuelve un vector de los parámetros actuales del material

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

Elimina un parameter de los parámetros del material.

© 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.