Qt3DRender::QParameter Class
class Qt3DRender::QParameterFournit un espace de stockage pour une paire nom/valeur. Cela correspond à un uniforme de nuanceur. Plus...
| En-tête : | #include <Qt3DRender/QParameter> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS 3drender)target_link_libraries(mytarget PRIVATE Qt6::3drender) |
| qmake : | QT += 3drender |
| En QML : | Parameter |
| Hérite : | Qt3DCore::QNode |
| Statut : | Déclassé |
Propriétés
Fonctions publiques
| 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 |
Emplacements publics
Signaux
| void | nameChanged(const QString &name) |
| void | valueChanged(const QVariant &value) |
Description détaillée
Un QParameter peut être référencé par un QRenderPass, QTechnique, QEffect, QMaterial, QTechniqueFilter, QRenderPassFilter. Au moment de l'exécution, en fonction du shader sélectionné pour une étape donnée du rendu, la valeur contenue dans un QParameter sera convertie et téléchargée si le shader contient un uniforme dont le nom correspond à celui du 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;
Remarque : il convient de veiller à ce que la valeur contenue dans un QParameter soit effectivement convertie en fonction des attentes de l'uniforme réel. Donner une valeur stockée sous la forme d'un int alors que l'uniforme du shader est de type float pourrait entraîner des comportements indéfinis.
Note : lorsque l'uniforme ciblé est un tableau, le nom doit être le nom de l'uniforme avec [0] ajouté.
Note : le noeud QParameter ne peut pas être désactivé.
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];
En ce qui concerne la prise en charge des textures, la valeur QParameter doit être définie sur la sous-classe QAbstractTexture appropriée qui correspond au type d'échantillonneur de l'uniforme du shader.
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
Voir également QAbstractTexture.
Documentation sur les propriétés
name : QString
Spécifie le nom du paramètre
Fonctions d'accès :
| QString | name() const |
| void | setName(const QString &name) |
Signal de notification :
| void | nameChanged(const QString &name) |
value : QVariant
Spécifie la valeur du paramètre
Fonctions d'accès :
| QVariant | value() const |
| void | setValue(const QVariant &dv) |
Signal du notificateur :
| void | valueChanged(const QVariant &value) |
Member Function Documentation
[explicit] QParameter::QParameter(Qt3DCore::QNode *parent = nullptr)
Construit un nouveau QParameter avec la valeur spécifiée parent.
[explicit] QParameter::QParameter(const QString &name, Qt3DRender::QAbstractTexture *texture, Qt3DCore::QNode *parent = nullptr)
Construit un nouveau QParameter avec la valeur spécifiée parent name et prend sa valeur dans texture.
[explicit] QParameter::QParameter(const QString &name, const QVariant &value, Qt3DCore::QNode *parent = nullptr)
Construit un nouveau QParameter avec les parent name et value spécifiés.
© 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.