PySide6.Qt3DRender.Qt3DRender.QMaterial¶
- class 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提供了一种指定entity渲染方式的方法。任何方面都可以定义自己的QMaterial子类,以便 Material 可以用来描述一个视觉元素;例如,声音应该如何反射一个元素,表面的温度等等。本身,
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)));
另请参阅
QEffectQTechniqueQParameter注意
当使用
from __feature__ import true_property时,属性可以直接使用,否则通过访问器函数使用。指定与材质一起使用的效果。
- Access functions:
- __init__([parent=None])¶
- Parameters:
parent –
QNode
- addParameter(parameter)¶
- Parameters:
参数 –
QParameter
向材料的参数中添加一个
parameter。- effect()¶
- Return type:
QEffect
另请参阅
setEffect()
属性
effectᅟ的获取器。- effectChanged(effect)¶
- Parameters:
效果 –
QEffect
属性
effectᅟ的通知信号。- parameters()¶
- Return type:
返回材料当前参数的向量
- removeParameter(parameter)¶
- Parameters:
参数 –
QParameter
从材料的参数中移除一个
parameter。- setEffect(effect)¶
- Parameters:
效果 –
QEffect
另请参阅
effect()
属性
effectᅟ的设置器。