- 类 QMaterial#
提供一个抽象类,该类应为场景中所有材质组件类的基类。 更多…
继承自:
QTextureMaterial
,QPhongMaterial
,QPhongAlphaMaterial
,QPerVertexColorMaterial
,QNormalDiffuseSpecularMapMaterial
,QNormalDiffuseMapMaterial
,QNormalDiffuseMapAlphaMaterial
,QMorphPhongMaterial
,QMetalRoughMaterial
,QGoochMaterial
,QDiffuseSpecularMaterial
,QDiffuseSpecularMapMaterial
,QDiffuseMapMaterial
概述#
属性#
方法#
def
__init__()
def
addParameter()
def
effect()
def
parameters()
槽#
def
setEffect()
信号#
def
effectChanged()
注意
本文档可能包含自动从C++翻译成Python的代码片段。我们始终欢迎对该片段翻译的贡献。如果您发现翻译有问题,也可以通过在https:/bugreports.qt.io/projects/PYSIDE创建工单来告知我们
详细描述#
QMaterial
提供了一种指定实体
渲染的方式。任何方面都可以定义自己QMaterial
的子类,以便材料可以用来描述视觉元素;例如,声音应该如何从元素上反射,表面温度,等等。本身,
QMaterial
并不执行任何事情。只有当它引用了QEffect
节点时,QMaterial
才变得有用。在实际情况中,单一
QEffect
经常被多个QMaterial
组件所引用。这样可以一次只创建效果、技术、过程和着色器,同时可以通过添加QParameter
实例来指定材料。在
QMaterial
上定义的QParameter
覆盖了在QEffect
、QTechnique
和QRenderPass
中定义的相同名称的参数,但被QRenderPassFilter
和QTechniqueFilter
中的参数覆盖。QMaterial *material1 = new QMaterial(); QMaterial *material2 = new QMaterial(); // Create effect, technique, render pass and shader QEffect *effect = new QEffect(); QTechnique *gl3Technique = new QTechnique(); QRenderPass *gl3Pass = new QRenderPass(); QShaderProgram *glShader = new QShaderProgram(); // Set the shader on the render pass gl3Pass->setShaderProgram(glShader); // Add the pass to the technique gl3Technique->addRenderPass(gl3Pass); // Set the targeted GL version for the technique gl3Technique->graphicsApiFilter()->setApi(QGraphicsApiFilter::OpenGL); gl3Technique->graphicsApiFilter()->setMajorVersion(3); gl3Technique->graphicsApiFilter()->setMinorVersion(1); gl3Technique->graphicsApiFilter()->setProfile(QGraphicsApiFilter::CoreProfile); // Add the technique to the effect effect->addTechnique(gl3Technique); // Set the effect on the materials material1->setEffect(effect); material2->setEffect(effect); // Set different parameters on the materials const QString parameterName = QStringLiteral("color"); material1->addParameter(new QParameter(parameterName, QColor::fromRgbF(0.0f, 1.0f, 0.0f, 1.0f))); material2->addParameter(new QParameter(parameterName, QColor::fromRgbF(1.0f, 1.0f, 1.0f, 1.0f)));
另请参阅
QEffect
QTechnique
QParameter
注意
当使用
from __feature__ import true_property
时,可以直接使用属性,否则通过访问函数使用。指定与材料一起使用的效果。
- 访问函数
- __init__([parent=None])#
- 参数:
parent –
QNode
- addParameter(parameter)#
- 参数:
parameter –
QParameter
将一个参数添加到材料的参数中。
- effect()#
- 返回类型:
QEffect
另请参阅
setEffect()
属性 QMaterial.effect 的获取器。
- effectChanged(effect)#
- 参数:
effect –
QEffect
属性 QMaterial.effect 的通知信号。
- parameters()#
- 返回类型:
. Qt3DRender.QParameter 的列表
返回材料当前参数的向量
- removeParameter(parameter)#
- 参数:
parameter –
QParameter
从材料的参数中移除一个
parameter
。- setEffect(effect)#
- 参数:
effect –
QEffect
另请参阅
effect()
属性 QMaterial.effect 的设置器。