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 setName(const QString &name)
void setValue(const QVariant &dv)

シグナル

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.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。