이 페이지에서

Qt3DRender::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
상태: 사용 중단됨

이 클래스는 더 이상 사용되지 않습니다. 새로운 코드에서는 이 클래스를 사용하지 않는 것을 강력히 권장합니다.

속성

공개 함수

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

텍스처 지원과 관련하여, 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` 객체를 생성합니다.

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