31 Q_PROPERTY(QQuick3DTexture *lightProbe READ lightProbe WRITE setLightProbe NOTIFY lightProbeChanged)
32 Q_PROPERTY(CullMode cullMode READ cullMode WRITE setCullMode NOTIFY cullModeChanged)
33 Q_PROPERTY(DepthDrawMode depthDrawMode READ depthDrawMode WRITE setDepthDrawMode NOTIFY depthDrawModeChanged)
35 QML_NAMED_ELEMENT(Material)
36 QML_UNCREATABLE(
"Material is Abstract")
46 enum TextureChannelMapping {
52 Q_ENUM(TextureChannelMapping)
55 OpaqueOnlyDepthDraw = 0,
58 OpaquePrePassDepthDraw,
62 enum VertexColorMask {
65 NormalStrengthMask = 2,
66 SpecularAmountMask = 4,
67 ClearcoatAmountMask = 8,
68 ClearcoatRoughnessAmountMask = 16,
69 ClearcoatNormalStrengthMask = 32,
70 HeightAmountMask = 64,
72 OcclusionAmountMask = 256,
73 ThicknessFactorMask = 512,
74 TransmissionFactorMask = 1024
76 Q_ENUM(VertexColorMask)
77 Q_DECLARE_FLAGS(VertexColorMaskFlags, VertexColorMask)
78 Q_FLAG(VertexColorMaskFlags)
80 ~QQuick3DMaterial() override;
82 QQuick3DTexture *lightProbe()
const;
84 CullMode cullMode()
const;
86 DepthDrawMode depthDrawMode()
const;
89 void setLightProbe(QQuick3DTexture *lightProbe);
90 void setCullMode(QQuick3DMaterial::CullMode cullMode);
91 void setDepthDrawMode(QQuick3DMaterial::DepthDrawMode depthDrawMode);
94 void lightProbeChanged(QQuick3DTexture *lightProbe);
95 void cullModeChanged(QQuick3DMaterial::CullMode cullMode);
96 void depthDrawModeChanged(QQuick3DMaterial::DepthDrawMode depthDrawMode);
99 explicit QQuick3DMaterial(QQuick3DObjectPrivate &dd, QQuick3DObject *parent =
nullptr);
100 QSSGRenderGraphObject *updateSpatialNode(QSSGRenderGraphObject *node) override;
101 void itemChange(ItemChange,
const ItemChangeData &) override;
104 void updateSceneManager(QQuick3DSceneManager *sceneManager);
105 QQuick3DTexture *m_iblProbe =
nullptr;
107 CullMode m_cullMode = CullMode::BackFaceCulling;
108 DepthDrawMode m_depthDrawMode = DepthDrawMode::OpaqueOnlyDepthDraw;