QMaterial Class
class Qt3DRender::QMaterialシーン内のすべてのマテリアルコンポーネントクラスのベースとなる抽象クラスを提供します。詳細...
ヘッダー | #include <QMaterial> |
CMakeの | find_package(Qt6 REQUIRED COMPONENTS 3drender) target_link_libraries(mytarget PRIVATE Qt6::3drender) |
qmake | QT += 3drender |
QML で | Material |
を継承: | Qt3DCore::QComponent |
継承される | 12 タイプQt3DExtras::QDiffuseMapMaterial Qt3DExtras::QDiffuseSpecularMapMaterial, , , , , , , , , , andQt3DExtras::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 は、entity のレンダリングを指定する方法を提供します。任意のアスペクトは QMaterial の独自のサブクラスを定義することができ、Material を使用して視覚的な要素を記述することができます。
QMaterial自体は何もしません。Qマテリアルが有用になるのは、QEffect ノードを参照するときだけです。
実際には、1つのQEffect が複数のQマテリアル・コンポーネントによって参照されることがよくあります。これにより、エフェクト、テクニック、パス、シェーダを一度だけ作成することができ、同時にQParameter インスタンスを追加してマテリアルを指定することができます。
QMaterial で定義されたQParameter は、QEffect 、QTechnique 、QRenderPass で定義されたパラメータ(同名)をオーバーライドしますが、QRenderPassFilter と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)));
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.