QParameter Class
class Qt3DRender::QParameter名前と値のペアのストレージを提供します。これはシェーダーのユニフォームにマッピングされます。さらに...
Header: | #include <Qt3DRender/QParameter> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS 3drender) target_link_libraries(mytarget PRIVATE Qt6::3drender) |
qmake: | QT += 3drender |
In QML: | Parameter |
Inherits: | Qt3DCore::QNode |
Status: | Deprecated |
プロパティ
パブリック関数
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 を構築します。
本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。