Qt3DRender::QMaterial Class
class Qt3DRender::QMaterialシーン内のすべてのマテリアルコンポーネントクラスの基底となるべき抽象クラスを提供します。詳細...
| ヘッダー: | #include <qmaterial.h> |
| 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 、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 は、entity のレンダリングを指定する手段を提供します。あらゆる側面において、独自の QMaterial のサブクラスを定義できるため、Material を使用して視覚的な要素(例えば、要素からの音の反射の仕方や表面の温度など)を記述することができます。
QMaterial自体は、それ自体では何もしません。QEffect ノードを参照して初めて、QMaterialは有用なものとなります。
実際には、1つのQEffect が複数のQMaterialコンポーネントから参照されることがよくあります。これにより、エフェクト、テクニック、パス、シェーダーを一度だけ作成すれば済み、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 」を削除します。
© 2026 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.