Provides an abstract class that should be the base of all material component classes in a scene. 更多 …
继承者: Qt3DExtras.QDiffuseMapMaterial , Qt3DExtras.QDiffuseSpecularMapMaterial , Qt3DExtras.QDiffuseSpecularMaterial , Qt3DExtras.QGoochMaterial , Qt3DExtras.QMetalRoughMaterial , Qt3DExtras.QMorphPhongMaterial , Qt3DExtras.QNormalDiffuseMapMaterial , Qt3DExtras.QNormalDiffuseSpecularMapMaterial , Qt3DExtras.QPerVertexColorMaterial , Qt3DExtras.QPhongAlphaMaterial , Qt3DExtras.QPhongMaterial , Qt3DExtras.QTextureMaterial
def
addParameter
(parameter)
def
effect
()
def
参数
()
def
removeParameter
(parameter)
def
effectChanged
(effect)
QMaterialprovides a way to specify the rendering of anentity. Any aspect can define its own subclass ofQMaterialso that a Material can be used to describe a visual element; for example, the way sound should reflect off an element, the temperature of a surface, and so on.In itself, a
QMaterialdoesn’t do anything. It’s only when it references aQEffectnode that aQMaterialbecomes useful.In practice, it often happens that a single
QEffectis being referenced by severalQMaterialcomponents. This allows to only create the effect, techniques, passes and shaders once while allowing to specify the material by addingQParameter实例。A
QParameterdefined on aQMaterialis overridden by aQParameter(of the same name) defined in aQTechniqueFilter或QRenderPassFilter.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
PySide2.Qt3DRender.Qt3DRender.
QMaterial
(
[
parent=None
]
)
¶
parent
–
QNode
PySide2.Qt3DRender.Qt3DRender.QMaterial.
addParameter
(
参数
)
¶
参数
–
QParameter
Add a
参数
to the material’s parameters.
PySide2.Qt3DRender.Qt3DRender.QMaterial.
effect
(
)
¶
QEffect
另请参阅
PySide2.Qt3DRender.Qt3DRender.QMaterial.
effectChanged
(
effect
)
¶
effect
–
QEffect
PySide2.Qt3DRender.Qt3DRender.QMaterial.
参数
(
)
¶
Returns a vector of the material’s current parameters
PySide2.Qt3DRender.Qt3DRender.QMaterial.
removeParameter
(
参数
)
¶
参数
–
QParameter
Remove a
参数
from the material’s parameters.