diff options
-rw-r--r-- | source/blender/depsgraph/intern/builder/deg_builder_relations.cc | 6 | ||||
-rw-r--r-- | source/blender/editors/object/object_relations.c | 3 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_particle.c | 2 |
3 files changed, 9 insertions, 2 deletions
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc index 23328721e2c..c8822df28e6 100644 --- a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc +++ b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc @@ -1714,8 +1714,10 @@ void DepsgraphRelationBuilder::build_particle_systems(Object *object) DEG_NODE_TYPE_PARTICLE_SYSTEM, DEG_OPCODE_PARTICLE_SYSTEM_DONE); ComponentKey eval_key(&object->id, DEG_NODE_TYPE_PARTICLE_SYSTEM); - ComponentKey point_cache_key(&object->id, DEG_NODE_TYPE_POINT_CACHE); - add_relation(eval_key, point_cache_key, "Particle Point Cache"); + if (BKE_ptcache_object_has(scene_, object, 0)) { + ComponentKey point_cache_key(&object->id, DEG_NODE_TYPE_POINT_CACHE); + add_relation(eval_key, point_cache_key, "Particle Point Cache"); + } /* Particle systems. */ LISTBASE_FOREACH (ParticleSystem *, psys, &object->particlesystem) { ParticleSettings *part = psys->part; diff --git a/source/blender/editors/object/object_relations.c b/source/blender/editors/object/object_relations.c index d61c5334ee6..867b807c908 100644 --- a/source/blender/editors/object/object_relations.c +++ b/source/blender/editors/object/object_relations.c @@ -1872,6 +1872,9 @@ static void single_mat_users(Main *bmain, Scene *scene, ViewLayer *view_layer, V if (ma->id.us > 1) { man = BKE_material_copy(bmain, ma); BKE_animdata_copy_id_action(bmain, &man->id, false); + if (man->nodetree != NULL) { + BKE_animdata_copy_id_action(bmain, &man->nodetree->id, false); + } man->id.us = 0; assign_material(bmain, ob, man, a, BKE_MAT_ASSIGN_USERPREF); diff --git a/source/blender/makesrna/intern/rna_particle.c b/source/blender/makesrna/intern/rna_particle.c index bc6c6917ed3..1eb96860c3e 100644 --- a/source/blender/makesrna/intern/rna_particle.c +++ b/source/blender/makesrna/intern/rna_particle.c @@ -670,6 +670,8 @@ static void rna_Particle_change_physics_type(Main *bmain, Scene *scene, PointerR part->fluid = MEM_callocN(sizeof(SPHFluidSettings), "SPH Fluid Settings"); BKE_particlesettings_fluid_default_settings(part); } + + DEG_relations_tag_update(bmain); } static void rna_Particle_redo_child(Main *bmain, Scene *scene, PointerRNA *ptr) |