29 Q_PROPERTY(QQuick3DTexture *lightProbe READ lightProbe WRITE setLightProbe NOTIFY lightProbeChanged)
30 Q_PROPERTY(CullMode cullMode READ cullMode WRITE setCullMode NOTIFY cullModeChanged)
31 Q_PROPERTY(DepthDrawMode depthDrawMode READ depthDrawMode WRITE setDepthDrawMode NOTIFY depthDrawModeChanged)
33 QML_NAMED_ELEMENT(Material)
34 QML_UNCREATABLE(
"Material is Abstract")
44 enum TextureChannelMapping {
50 Q_ENUM(TextureChannelMapping)
53 OpaqueOnlyDepthDraw = 0,
56 OpaquePrePassDepthDraw,
60 enum VertexColorMask {
63 NormalStrengthMask = 2,
64 SpecularAmountMask = 4,
65 ClearcoatAmountMask = 8,
66 ClearcoatRoughnessAmountMask = 16,
67 ClearcoatNormalStrengthMask = 32,
68 HeightAmountMask = 64,
70 OcclusionAmountMask = 256,
71 ThicknessFactorMask = 512,
72 TransmissionFactorMask = 1024
74 Q_ENUM(VertexColorMask)
75 Q_DECLARE_FLAGS(VertexColorMaskFlags, VertexColorMask)
76 Q_FLAG(VertexColorMaskFlags)
78 ~QQuick3DMaterial() override;
80 QQuick3DTexture *lightProbe()
const;
82 CullMode cullMode()
const;
84 DepthDrawMode depthDrawMode()
const;
87 void setLightProbe(QQuick3DTexture *lightProbe);
88 void setCullMode(QQuick3DMaterial::CullMode cullMode);
89 void setDepthDrawMode(QQuick3DMaterial::DepthDrawMode depthDrawMode);
92 void lightProbeChanged(QQuick3DTexture *lightProbe);
93 void cullModeChanged(QQuick3DMaterial::CullMode cullMode);
94 void depthDrawModeChanged(QQuick3DMaterial::DepthDrawMode depthDrawMode);
97 explicit QQuick3DMaterial(QQuick3DObjectPrivate &dd, QQuick3DObject *parent =
nullptr);
98 QSSGRenderGraphObject *updateSpatialNode(QSSGRenderGraphObject *node) override;
99 void itemChange(ItemChange,
const ItemChangeData &) override;
102 void updateSceneManager(QQuick3DSceneManager *sceneManager);
103 QQuick3DTexture *m_iblProbe =
nullptr;
105 CullMode m_cullMode = CullMode::BackFaceCulling;
106 DepthDrawMode m_depthDrawMode = DepthDrawMode::OpaqueOnlyDepthDraw;