QMaterial Class
class Qt3DRender::QMaterialシーン内のすべてのマテリアルコンポーネントクラスのベースとなる抽象クラスを提供します。詳細...
Header: | #include <QMaterial> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS 3drender) target_link_libraries(mytarget PRIVATE Qt6::3drender) |
qmake: | QT += 3drender |
In QML: | Material |
Inherits: | Qt3DCore::QComponent |
Inherited By: | 12 typesQt3DExtras::QDiffuseMapMaterial, Qt3DExtras::QDiffuseSpecularMapMaterial, Qt3DExtras::QDiffuseSpecularMaterial, Qt3DExtras::QGoochMaterial, Qt3DExtras::QMetalRoughMaterial, Qt3DExtras::QMorphPhongMaterial, Qt3DExtras::QNormalDiffuseMapMaterial, Qt3DExtras::QNormalDiffuseSpecularMapMaterial, Qt3DExtras::QPerVertexColorMaterial, Qt3DExtras::QPhongAlphaMaterial, Qt3DExtras::QPhongMaterial, and Qt3DExtras::QTextureMaterial |
Status: | Deprecated |
プロパティ
- 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 を削除します。
©2024 The Qt Company Ltd. 本書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。