104void QQuick3DMaterial::setLightProbe(QQuick3DTexture *iblProbe)
106 if (m_iblProbe == iblProbe)
109 QQuick3DObjectPrivate::attachWatcher(
this, &QQuick3DMaterial::setLightProbe, iblProbe, m_iblProbe);
111 m_iblProbe = iblProbe;
112 emit lightProbeChanged(m_iblProbe);
136QSSGRenderGraphObject *QQuick3DMaterial::updateSpatialNode(QSSGRenderGraphObject *node)
141 QQuick3DObject::updateSpatialNode(node);
144 if (node->type == QSSGRenderGraphObject::Type::DefaultMaterial ||
145 node->type == QSSGRenderGraphObject::Type::PrincipledMaterial ||
146 node->type == QSSGRenderGraphObject::Type::SpecularGlossyMaterial) {
147 auto defaultMaterial =
static_cast<QSSGRenderDefaultMaterial *>(node);
150 defaultMaterial->iblProbe =
nullptr;
152 defaultMaterial->iblProbe = m_iblProbe->getRenderImage();
154 defaultMaterial->cullMode = QSSGCullFaceMode(m_cullMode);
155 defaultMaterial->depthDrawMode = QSSGDepthDrawMode(m_depthDrawMode);
157 DebugViewHelpers::ensureDebugObjectName(defaultMaterial,
this);
159 node = defaultMaterial;
160 }
else if (node->type == QSSGRenderGraphObject::Type::CustomMaterial) {
161 auto customMaterial =
static_cast<QSSGRenderCustomMaterial *>(node);
164 customMaterial->m_iblProbe =
nullptr;
166 customMaterial->m_iblProbe = m_iblProbe->getRenderImage();
168 customMaterial->m_cullMode = QSSGCullFaceMode(m_cullMode);
169 customMaterial->m_depthDrawMode = QSSGDepthDrawMode(m_depthDrawMode);
171 DebugViewHelpers::ensureDebugObjectName(customMaterial,
this);
173 node = customMaterial;
179void QQuick3DMaterial::itemChange(QQuick3DObject::ItemChange change,
const QQuick3DObject::ItemChangeData &value)
181 if (change == QQuick3DObject::ItemSceneChange)
182 updateSceneManager(value.sceneManager);