106void QQuick3DMaterial::setLightProbe(QQuick3DTexture *iblProbe)
108 if (m_iblProbe == iblProbe)
111 QQuick3DObjectPrivate::attachWatcher(
this, &QQuick3DMaterial::setLightProbe, iblProbe, m_iblProbe);
113 m_iblProbe = iblProbe;
114 emit lightProbeChanged(m_iblProbe);
138QSSGRenderGraphObject *QQuick3DMaterial::updateSpatialNode(QSSGRenderGraphObject *node)
143 QQuick3DObject::updateSpatialNode(node);
146 if (node->type == QSSGRenderGraphObject::Type::DefaultMaterial ||
147 node->type == QSSGRenderGraphObject::Type::PrincipledMaterial ||
148 node->type == QSSGRenderGraphObject::Type::SpecularGlossyMaterial) {
149 auto defaultMaterial =
static_cast<QSSGRenderDefaultMaterial *>(node);
152 defaultMaterial->iblProbe =
nullptr;
154 defaultMaterial->iblProbe = m_iblProbe->getRenderImage();
156 defaultMaterial->cullMode = QSSGCullFaceMode(m_cullMode);
157 defaultMaterial->depthDrawMode = QSSGDepthDrawMode(m_depthDrawMode);
159 DebugViewHelpers::ensureDebugObjectName(defaultMaterial,
this);
161 node = defaultMaterial;
162 }
else if (node->type == QSSGRenderGraphObject::Type::CustomMaterial) {
163 auto customMaterial =
static_cast<QSSGRenderCustomMaterial *>(node);
166 customMaterial->m_iblProbe =
nullptr;
168 customMaterial->m_iblProbe = m_iblProbe->getRenderImage();
170 customMaterial->m_cullMode = QSSGCullFaceMode(m_cullMode);
171 customMaterial->m_depthDrawMode = QSSGDepthDrawMode(m_depthDrawMode);
173 DebugViewHelpers::ensureDebugObjectName(customMaterial,
this);
175 node = customMaterial;
181void QQuick3DMaterial::itemChange(QQuick3DObject::ItemChange change,
const QQuick3DObject::ItemChangeData &value)
183 if (change == QQuick3DObject::ItemSceneChange)
184 updateSceneManager(value.sceneManager);