112void QQuick3DMaterial::setLightProbe(QQuick3DTexture *iblProbe)
114 if (m_iblProbe == iblProbe)
117 QQuick3DObjectPrivate::attachWatcher(
this, &QQuick3DMaterial::setLightProbe, iblProbe, m_iblProbe);
119 m_iblProbe = iblProbe;
120 emit lightProbeChanged(m_iblProbe);
144QSSGRenderGraphObject *QQuick3DMaterial::updateSpatialNode(QSSGRenderGraphObject *node)
149 QQuick3DObject::updateSpatialNode(node);
152 if (node->type == QSSGRenderGraphObject::Type::DefaultMaterial ||
153 node->type == QSSGRenderGraphObject::Type::PrincipledMaterial ||
154 node->type == QSSGRenderGraphObject::Type::SpecularGlossyMaterial) {
155 auto defaultMaterial =
static_cast<QSSGRenderDefaultMaterial *>(node);
158 defaultMaterial->iblProbe =
nullptr;
160 defaultMaterial->iblProbe = m_iblProbe->getRenderImage();
162 defaultMaterial->cullMode = QSSGCullFaceMode(m_cullMode);
163 defaultMaterial->depthDrawMode = QSSGDepthDrawMode(m_depthDrawMode);
165 DebugViewHelpers::ensureDebugObjectName(defaultMaterial,
this);
167 node = defaultMaterial;
168 }
else if (node->type == QSSGRenderGraphObject::Type::CustomMaterial) {
169 auto customMaterial =
static_cast<QSSGRenderCustomMaterial *>(node);
172 customMaterial->m_iblProbe =
nullptr;
174 customMaterial->m_iblProbe = m_iblProbe->getRenderImage();
176 customMaterial->m_cullMode = QSSGCullFaceMode(m_cullMode);
177 customMaterial->m_depthDrawMode = QSSGDepthDrawMode(m_depthDrawMode);
179 DebugViewHelpers::ensureDebugObjectName(customMaterial,
this);
181 node = customMaterial;
187void QQuick3DMaterial::itemChange(QQuick3DObject::ItemChange change,
const QQuick3DObject::ItemChangeData &value)
189 if (change == QQuick3DObject::ItemSceneChange)
190 updateSceneManager(value.sceneManager);