En esta página

Qt3DRender::QParameter Class

class Qt3DRender::QParameter

Proporciona almacenamiento para un par de nombre y valor. Se asigna a un uniforme de sombreado. Más...

Cabecera: #include <Qt3DRender/QParameter>
CMake: find_package(Qt6 REQUIRED COMPONENTS 3drender)
target_link_libraries(mytarget PRIVATE Qt6::3drender)
qmake: QT += 3drender
En QML: Parameter
Hereda: Qt3DCore::QNode
Status: Obsoleto

Propiedades

Funciones públicas

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

Ranuras públicas

void setName(const QString &name)
void setValue(const QVariant &dv)

Señales

void nameChanged(const QString &name)
void valueChanged(const QVariant &value)

Descripción detallada

Un QParameter puede ser referenciado por un QRenderPass, QTechnique, QEffect, QMaterial, QTechniqueFilter, QRenderPassFilter. En tiempo de ejecución, dependiendo del shader seleccionado para un determinado paso del renderizado, el valor contenido en un QParameter será convertido y cargado si el shader contiene un uniforme con un nombre que coincida con el del 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;

Nota: debe tenerse cierto cuidado para asegurar que el valor envuelto por un QParameter puede realmente ser convertido a lo que el uniforme real espera. Dar un valor almacenado como int cuando el uniforme real del shader es de tipo float podría resultar en comportamientos indefinidos.

Nota: cuando el uniforme objetivo es un array, el nombre debe ser el nombre del uniforme con [0] añadido.

Nota: El nodo QParameter no puede ser desactivado.

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];

Cuando se trata de soporte de texturas, el valor de QParameter debe establecerse a la subclase QAbstractTexture apropiada que coincida con el tipo de muestreador del uniforme del 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

Ver también QAbstractTexture.

Documentación de propiedades

name : QString

Especifica el nombre del parámetro

Funciones de acceso:

QString name() const
void setName(const QString &name)

Señal del notificador:

void nameChanged(const QString &name)

value : QVariant

Especifica el valor del parámetro

Funciones de acceso:

QVariant value() const
void setValue(const QVariant &dv)

Señal del notificador:

void valueChanged(const QVariant &value)

Documentación de la función miembro

[explicit] QParameter::QParameter(Qt3DCore::QNode *parent = nullptr)

Construye un nuevo QParameter con el parent especificado.

[explicit] QParameter::QParameter(const QString &name, Qt3DRender::QAbstractTexture *texture, Qt3DCore::QNode *parent = nullptr)

Construye un nuevo QParameter con el parent name especificado y toma su valor de texture.

[explicit] QParameter::QParameter(const QString &name, const QVariant &value, Qt3DCore::QNode *parent = nullptr)

Construye un nuevo QParameter con el parent name y value especificados.

© 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.