class QParameter链接到此处

提供存储名称和值对的接口。这对应于着色器统一量。详细信息…

Inheritance diagram of PySide6.Qt3DRender.Qt3DRender.QParameter

概览链接到此处

属性链接到此处

方法链接到此处

链接到此处

信号链接到此处

注意

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

详细描述链接到此处

一个 QParameter 可以被一个 QRenderPassQTechniqueQEffectQMaterialQTechniqueFilterQRenderPassFilter 引用。在运行时,根据为渲染过程选定哪个着色器,如果着色器中包含与 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 的值可以被转换为真正的统一量所期望的类型时必须谨慎。将存储为 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

注意

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

property nameᅟ: str#

指定参数的名称

访问函数
property valueᅟ: object#

指定参数的值

访问函数
__init__([parent=None])#
参数:

parentQNode

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

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

  • textureQAbstractTexture

  • parentQNode

使用指定的 parentname 来构造一个新的 QParameter 并从 texture 获取其值。

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

  • value – object

  • parentQNode

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

name()#
返回类型:

字符串

另请参阅

setName()

属性 name 的获取器。

nameChanged(name)#
参数:

name – str

属性 name 的通知信号。

setName(name)#
参数:

name – str

另请参阅

name()

属性 name 的设置器。

setValue(dv)#
参数:

dv – 对象

另请参阅

value()

属性 value 的设置器。

value()#
返回类型:

对象

另请参阅

setValue()

属性 value 的获取器。

valueChanged(value)#
参数:

value – object

属性 value 的通知信号。