QMaterial Class

class Qt3DRender::QMaterial

シーン内のすべてのマテリアルコンポーネントクラスのベースとなる抽象クラスを提供します。詳細...

プロパティ

  • 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 は、entity のレンダリングを指定する方法を提供します。任意のアスペクトは QMaterial の独自のサブクラスを定義することができ、Material を使用して視覚的な要素を記述することができます。

QMaterial自体は何もしません。Qマテリアルが有用になるのは、QEffect ノードを参照するときだけです。

実際には、1つのQEffect が複数のQマテリアル・コンポーネントによって参照されることがよくあります。これにより、エフェクト、テクニック、パス、シェーダを一度だけ作成することができ、同時にQParameter インスタンスを追加してマテリアルを指定することができます。

QMaterial で定義されたQParameter は、QEffectQTechniqueQRenderPass で定義されたパラメータ(同名)をオーバーライドしますが、QRenderPassFilterQTechniqueFilter のパラメータによってオーバーライドされます。

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 を削除する。

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