Spec-Zone.ru › Qt 6.0

Класс QMaterial

класс Qt3DRender::QMaterial

Предоставляет абстрактный класс, который должен быть базовым для всех классов компонентов материалов в сцене. Подробнее...

Заголовок: #include <QMaterial>
CMake: find_package(Qt6 COMPONENTS 3drender REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::3drender)
qmake: QT += 3drender
С момента: Qt 5.5
Инициализируется: Material
Наследуется от: Qt3DCore::QComponent
Наследуется:

Qt3DExtras::QDiffuseMapMaterial, Qt3DExtras::QDiffuseSpecularMapMaterial, Qt3DExtras::QDiffuseSpecularMaterial, Qt3DExtras::QGoochMaterial, Qt3DExtras::QMetalRoughMaterial, Qt3DExtras::QMorphPhongMaterial, Qt3DExtras::QNormalDiffuseMapMaterial, Qt3DExtras::QNormalDiffuseSpecularMapMaterial, Qt3DExtras::QPerVertexColorMaterial, Qt3DExtras::QPhongAlphaMaterial, Qt3DExtras::QPhongMaterial и Qt3DExtras::QTextureMaterial

  • Список всех членов, включая наследуемые

Свойства

  • effect : Qt3DRender::QEffect*

Открытые функции

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

Открытые слоты

void setEffect(Qt3DRender::QEffect *effect)

Сигналы

void effectChanged(Qt3DRender::QEffect *effect)

Подробное описание

Класс 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*

Указывает эффект, который должен использоваться с материалом.

Функции доступа:

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

Сигнал уведомления:

void effectChanged(Qt3DRender::QEffect *effect)

Документация по функциям-членам

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

Добавить parameter к параметрам материала.

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

Возвращает список текущих параметров материала

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

Удалить parameter из параметров материала.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.0/qt3drender-qmaterial.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API