PySide6.Qt3DRender.Qt3DRender.QParameter

class QParameter

为名称和值对提供存储。这映射到着色器统一变量。更多

PySide6.Qt3DRender.Qt3DRender.QParameter 的继承图

概要

属性

方法

插槽

信号

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

一个QParameter可以被QRenderPassQTechniqueQEffectQMaterialQTechniqueFilterQRenderPassFilter引用。在运行时,根据渲染步骤中选择的着色器,如果着色器包含与QParameter名称匹配的uniform,则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包装的值实际上可以转换为真实uniform所期望的类型。如果给出一个存储为int的值,而实际的着色器uniform是float类型,可能会导致未定义的行为。

注意

当目标uniform是一个数组时,名称应该是uniform的名称,并在其后附加[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

注意

当使用from __feature__ import true_property时,属性可以直接使用,否则通过访问器函数使用。

property nameᅟ: str

指定参数的名称

Access functions:
property valueᅟ: object

指定参数的值

Access functions:
__init__([parent=None])
Parameters:

parentQNode

使用指定的parent构造一个新的QParameter

__init__(name, texture[, parent=None])
Parameters:
  • name – str

  • 纹理QAbstractTexture

  • parentQNode

使用指定的parent name构造一个新的QParameter,并从texture中获取其值。

__init__(name, value[, parent=None])
Parameters:
  • name – str

  • value – 对象

  • parentQNode

使用指定的parentnamevalue构造一个新的QParameter

name()
Return type:

字符串

另请参阅

setName()

获取属性 nameᅟ 的Getter。

nameChanged(name)
Parameters:

name – str

属性 nameᅟ 的通知信号。

setName(name)
Parameters:

name – str

另请参阅

name()

属性 nameᅟ 的设置器。

setValue(dv)
Parameters:

dv – 对象

另请参阅

value()

属性 valueᅟ 的设置器。

value()
Return type:

对象

另请参阅

setValue()

属性 valueᅟ 的获取器。

valueChanged(value)
Parameters:

– 对象

属性 valueᅟ 的通知信号。