Класс QMaterial
(Qt3DRender::QMaterial)Предоставляет абстрактный класс, который должен быть основой всех классов компонентов материала в сцене. Подробнее...
| Заголовок: | #include <QMaterial> |
| qmake: | QT += 3drender |
| С момента: | Qt 5.5 |
| Инициализируется: | Материал |
| Наследуется от: | Qt3DCore::QComponent |
| Наследуется: | Qt3DExtras::QDiffuseMapMaterial, Qt3DExtras::QDiffuseSpecularMapMaterial, Qt3DExtras::QGoochMaterial, Qt3DExtras::QMetalRoughMaterial, Qt3DExtras::QMorphPhongMaterial, Qt3DExtras::QNormalDiffuseMapMaterial, Qt3DExtras::QNormalDiffuseSpecularMapMaterial, Qt3DExtras::QPerVertexColorMaterial, Qt3DExtras::QPhongAlphaMaterial, Qt3DExtras::QPhongMaterial, Qt3DExtras::QTexturedMetalRoughMaterial и Qt3DExtras::QTextureMaterial |
Свойства
- effect : Qt3DRender::QEffect *
- 1 свойство унаследовано от Qt3DCore::QComponent
- 3 свойства унаследовано от Qt3DCore::QNode
- 1 свойство унаследовано от QObject
Открытые функции
| QMaterial(Qt3DCore::QNode *parent = nullptr) | |
| ~QMaterial() | |
| void | addParameter(QParameter *parameter) |
| QEffect * | effect() const |
| QVector<QParameter *> | parameters() const |
| void | removeParameter(QParameter *parameter) |
- 2 открытые функции унаследованы от Qt3DCore::QComponent
- 11 открытые функции унаследованы от Qt3DCore::QNode
- 32 открытые функции унаследованы от QObject
Открытые слоты
| void | setEffect(QEffect *effect) |
- 1 открытый слот унаследован от Qt3DCore::QComponent
- 3 открытых слота унаследованы от Qt3DCore::QNode
- 1 открытый слот унаследован от QObject
Сигналы
| void | effectChanged(QEffect *effect) |
- 3 сигнала унаследованы от Qt3DCore::QComponent
- 4 сигнала унаследованы от Qt3DCore::QNode
- 2 сигнала унаследованы от QObject
Защищенные функции
| QMaterial(QMaterialPrivate &dd, Qt3DCore::QNode *parent = nullptr) |
- 2 защищенные функции унаследованы от Qt3DCore::QNode
- 9 защищенные функции унаследованы от QObject
Дополнительные унаследованные члены
- 11 статических открытых членов унаследованы от QObject
Подробное описание
Предоставляет абстрактный класс, который должен быть основой всех классов компонентов материала в сцене.
QMaterial предоставляет способ указать рендеринг сущности. Любой аспект может определить свой собственный подкласс QMaterial, чтобы материал мог использоваться для описания визуального элемента; например, способ, которым звук должен отражаться от элемента, температура поверхности и так далее.
Сам по себе QMaterial ничего не делает. Он становится полезным только тогда, когда ссылается на узел QEffect.
На практике часто бывает, что один QEffect используется несколькими компонентами QMaterial. Это позволяет создавать эффект, техники, проходы и шейдеры только один раз, одновременно позволяя задать материал, добавив экземпляры QParameter.
QParameter, определенный в QMaterial, переопределяется QParameter (с тем же именем), определенным в QTechniqueFilter или QRenderPassFilter.
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); См. также QEffect, QTechnique и QParameter.
Документация по свойствам
effect : Qt3DRender::QEffect *
Определяет эффект, который будет использоваться с материалом.
Функции доступа:
| QEffect * | effect() const |
| void | setEffect(QEffect *effect) |
Сигнал уведомления:
| void | effectChanged(QEffect *effect) |
Документация по функциям-членам
QMaterial::QMaterial(Qt3DCore::QNode *parent = nullptr)
Создает экземпляр QMaterial по умолчанию.
[protected] QMaterial::QMaterial(QMaterialPrivate &dd, Qt3DCore::QNode *parent = nullptr)
Конструктор копирования.
QMaterial::~QMaterial()
Удаляет экземпляр QMaterial.
void QMaterial::addParameter(QParameter *parameter)
Добавляет parameter к параметрам материала.
QVector<QParameter *> QMaterial::parameters() const
Возвращает вектор текущих параметров материала.
void QMaterial::removeParameter(QParameter *parameter)
Удаляет parameter из параметров материала.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.9/qt3drender-qmaterial.html