QParameter Class
class Qt3DRender::QParameter名前と値のペアのストレージを提供します。これはシェーダーのユニフォームにマッピングされます。さらに...
ヘッダ: | #include <Qt3DRender/QParameter> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS 3drender) target_link_libraries(mytarget PRIVATE Qt6::3drender) |
qmake | QT += 3drender |
QML で | Parameter |
を継承しています: | Qt3DCore::QNode |
ステータス | 非推奨 |
プロパティ
パブリック機能
QParameter(Qt3DCore::QNode *parent = nullptr) | |
QParameter(const QString &name, Qt3DRender::QAbstractTexture *texture, Qt3DCore::QNode *parent = nullptr) | |
QParameter(const QString &name, const QVariant &value, Qt3DCore::QNode *parent = nullptr) | |
QString | name() const |
QVariant | value() const |
パブリックスロット
シグナル
void | nameChanged(const QString &name) |
void | valueChanged(const QVariant &value) |
詳細説明
QParameter はQRenderPass,QTechnique,QEffect,QMaterial,QTechniqueFilter,QRenderPassFilter で参照できます。実行時に、レンダリングの特定のステップでどのシェーダが選択されるかによっ て、QParameter に含まれる値は、そのシェーダに QParameter と一致する名前のユニフォー ムが含まれている場合に変換され、アップロードされます。
QParameter *param = new QParameter(); param->setName(QStringLiteral("diffuseColor")); param->setValue(QColor::fromRgbF(0.0f, 0.0f, 1.0f, 1.0f)); // Alternatively you can create and set a QParameter this way QParameter *param2 = new QParameter(QStringLiteral("diffuseColor"), QColor::fromRgbF(0.0f, 0.0f, 1.0f, 1.0f)); // Such QParameters will work with the following GLSL uniform shader declarations // uniform vec4 diffuseColor; // uniform vec3 diffuseColor; // uniform vec2 diffuseColor; // uniform float diffuseColor;
注意: QParameterによってラップされた値が、実際のユニフォームが期待するものに実際に変換できるように、いくつかの注意を払う必要があります。実際のシェーダユニフォームがfloat型である場合にint型として格納された値を与えると、未定義の動作になる可能性があります。
注意: 対象となるユニフォームが配列である場合、nameはユニフォームの名前に[0]を付加したものでなければなりません。
注意: QParameterノードを無効にすることはできません。
QParameter *param = new QParameter(); QVariantList values = QVariantList() << 0.0f << 1.0f << 2.0f << 3.0f << 4.0f << 883.0f << 1340.0f << 1584.0f; param->setName(QStringLiteral("diffuseValues[0]")); param->setValue(values); // Matching GLSL shader uniform declaration // uniform float diffuseValues[8];
テクスチャサポートに関しては、QParameter値は、シェーダーユニフォームのサンプラータイプにマッチする適切なQAbstractTexture サブクラスに設定する必要があります。
QTexture2D *texture = new QTexture2D(); ... QParameter *param = new QParameter(); param->setName(QStringLiteral("diffuseTexture")); param->setValue(QVariant::fromValue(texture)); // Works with the following GLSL uniform shader declaration // uniform sampler2D diffuseTexture
QAbstractTextureも参照してください 。
プロパティのドキュメント
name : QString
パラメータ名を指定する
アクセス関数:
QString | name() const |
void | setName(const QString &name) |
通知シグナル
void | nameChanged(const QString &name) |
value : QVariant
パラメータの値を指定する
アクセス機能
QVariant | value() const |
void | setValue(const QVariant &dv) |
通知シグナル
void | valueChanged(const QVariant &value) |
メンバ関数ドキュメント
[explicit]
QParameter::QParameter(Qt3DCore::QNode *parent = nullptr)
指定されたparent で新しい QParameter を構築します。
[explicit]
QParameter::QParameter(const QString &name, Qt3DRender::QAbstractTexture *texture, Qt3DCore::QNode *parent = nullptr)
指定されたparent name で新しい QParameter を構築し、その値をtexture から取得します。
[explicit]
QParameter::QParameter(const QString &name, const QVariant &value, Qt3DCore::QNode *parent = nullptr)
指定されたparent name とvalue を持つ新しい QParameter を構築します。
© 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.