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
상태: 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로 저장된 값을 제공하면 정의되지 않은 동작이 발생할 수 있습니다.

참고: 대상 유니폼이 배열인 경우, 이름은 [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];

텍스처 지원의 경우, 셰이더 유니폼의 샘플러 유형과 일치하는 적절한 QAbstractTexture 서브클래스로 QParameter 값을 설정해야 합니다.

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 namevalue 로 새 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.