Qt3DRender::QMaterial Class
class Qt3DRender::QMaterialProporciona una clase abstracta que debe ser la base de todas las clases de componentes materiales en una escena. Más...
| Cabecera: | #include <QMaterial> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS 3drender)target_link_libraries(mytarget PRIVATE Qt6::3drender) |
| qmake: | QT += 3drender |
| En QML: | Material |
| Hereda de: | Qt3DCore::QComponent |
| Heredado por: | 12 tiposQt3DExtras::QDiffuseMapMaterial, Qt3DExtras::QDiffuseSpecularMapMaterial, Qt3DExtras::QDiffuseSpecularMaterial, Qt3DExtras::QGoochMaterial, Qt3DExtras::QMetalRoughMaterial, Qt3DExtras::QMorphPhongMaterial, Qt3DExtras::QNormalDiffuseMapMaterial, Qt3DExtras::QNormalDiffuseSpecularMapMaterial, Qt3DExtras::QPerVertexColorMaterial, Qt3DExtras::QPhongAlphaMaterial, Qt3DExtras::QPhongMaterial, y Qt3DExtras::QTextureMaterial |
| Estado: | Obsoleto |
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.