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 | 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 name 및 value 로 새 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.