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

©2024 The Qt Company Ltd. 本書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。