QMaterial#
Provides an abstract class that should be the base of all material component classes in a scene. More…
Inherited by: QTextureMaterial, QPhongMaterial, QPhongAlphaMaterial, QPerVertexColorMaterial, QNormalDiffuseSpecularMapMaterial, QNormalDiffuseMapMaterial, QNormalDiffuseMapAlphaMaterial, QMorphPhongMaterial, QMetalRoughMaterial, QGoochMaterial, QDiffuseSpecularMaterial, QDiffuseSpecularMapMaterial, QDiffuseMapMaterial
Synopsis#
Properties#
Functions#
def
addParameter
(parameter)def
effect
()def
parameters
()def
removeParameter
(parameter)
Slots#
def
setEffect
(effect)
Signals#
def
effectChanged
(effect)
Note
This documentation may contain snippets that were automatically translated from C++ to Python. We always welcome contributions to the snippet translation. If you see an issue with the translation, you can also let us know by creating a ticket on https:/bugreports.qt.io/projects/PYSIDE
Detailed Description#
QMaterial
provides a way to specify the rendering of an entity
. Any aspect can define its own subclass of QMaterial
so 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 QMaterial
doesn’t do anything. It’s only when it references a QEffect
node that a QMaterial
becomes useful.
In practice, it often happens that a single QEffect
is being referenced by several QMaterial
components. This allows to only create the effect, techniques, passes and shaders once while allowing to specify the material by adding QParameter
instances.
A QParameter
defined on a QMaterial
overrides parameter (of the same name) defined in a QEffect
, QTechnique
and QRenderPass
, but are overridden by parameter in QRenderPassFilter
and 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)));See also
QEffect
QTechnique
QParameter
- class PySide6.Qt3DRender.Qt3DRender.QMaterial([parent=None])#
- Parameters:
parent –
PySide6.Qt3DCore.Qt3DCore.QNode
Note
Properties can be used directly when from __feature__ import true_property
is used or via accessor functions otherwise.
- property PᅟySide6.Qt3DRender.Qt3DRender.QMaterial.effect: PySide6.Qt3DRender.Qt3DRender.QEffect#
Specifies the effect to be used with the material.
- Access functions:
effect
()setEffect
(effect)Signal
effectChanged
(effect)
- PySide6.Qt3DRender.Qt3DRender.QMaterial.addParameter(parameter)#
- Parameters:
parameter –
PySide6.Qt3DRender.Qt3DRender.QParameter
Add a parameter
to the material’s parameters.
- PySide6.Qt3DRender.Qt3DRender.QMaterial.effect()#
- Return type:
See also
Getter of property effect
.
- PySide6.Qt3DRender.Qt3DRender.QMaterial.effectChanged(effect)#
- Parameters:
Notification signal of property effect
.
- PySide6.Qt3DRender.Qt3DRender.QMaterial.parameters()#
- Return type:
.list of Qt3DRender.QParameter
Returns a vector of the material’s current parameters
- PySide6.Qt3DRender.Qt3DRender.QMaterial.removeParameter(parameter)#
- Parameters:
parameter –
PySide6.Qt3DRender.Qt3DRender.QParameter
Remove a parameter
from the material’s parameters.
- PySide6.Qt3DRender.Qt3DRender.QMaterial.setEffect(effect)#
- Parameters:
See also
Setter of property effect
.