PySide6.Qt3DRender.Qt3DRender.QParameter¶
- class QParameter¶
为名称和值对提供存储。这映射到着色器统一变量。更多…
概要¶
属性¶
方法¶
def
__init__()def
name()def
value()
插槽¶
def
setName()def
setValue()
信号¶
def
nameChanged()def
valueChanged()
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
一个
QParameter可以被QRenderPass、QTechnique、QEffect、QMaterial、QTechniqueFilter、QRenderPassFilter引用。在运行时,根据渲染步骤中选择的着色器,如果着色器包含与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:
parent –
QNode
使用指定的
parent构造一个新的QParameter。- __init__(name, texture[, parent=None])
- Parameters:
name – str
纹理 –
QAbstractTextureparent –
QNode
使用指定的
parentname构造一个新的QParameter,并从texture中获取其值。- __init__(name, value[, parent=None])
- Parameters:
name – str
value – 对象
parent –
QNode
使用指定的
parent、name和value构造一个新的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ᅟ的通知信号。