Blender Git Loki
Git Commits -> Revision d3c08b1
Revision d3c08b1 by Sergey Sharybin (master) November 14, 2018, 13:08 (GMT) |
Depsgraph: Fix missing point cache reset when physics changes Among all the lines moved around, the general idea is quite simple. Actually, there are two ideas implemented there. First one, is when object itself is tagged for update, we tag its point cache component for evaluation, which makes it so point cache is properly reset. We do it implicitly because otherwise we'll need to go everywhere and add explicit tag in almost all the properties. Second thing is, we link all collider and force fields to a point cache component using special type of link. This type of link only allows flush if change is caused by a user update. This way reset does not happen when change is caused due to animation, but will properly happen when user causes indirect change to the objects which are part of physics simulation. |
Commit Details:
Full Hash: d3c08b1aa62d0e6b373621cbd2da7342796f9625
Parent Commit: 1d8db50
Lines Changed: +316, -198
26 Modified Paths:
/source/blender/blenkernel/BKE_object.h (+1, -1) (Diff)
/source/blender/blenkernel/intern/object_update.c (+3, -3) (Diff)
/source/blender/depsgraph/DEG_depsgraph.h (+5, -4) (Diff)
/source/blender/depsgraph/DEG_depsgraph_build.h (+13, -4) (Diff)
/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc (+23, -35) (Diff)
/source/blender/depsgraph/intern/builder/deg_builder_nodes.h (+1, -1) (Diff)
/source/blender/depsgraph/intern/builder/deg_builder_relations.cc (+48, -28) (Diff)
/source/blender/depsgraph/intern/builder/deg_builder_relations.h (+1, -1) (Diff)
/source/blender/depsgraph/intern/debug/deg_debug_relations_graphviz.cc (+19, -11) (Diff)
/source/blender/depsgraph/intern/depsgraph.h (+6, -4) (Diff)
/source/blender/depsgraph/intern/depsgraph_build.cc (+65, -42) (Diff)
/source/blender/depsgraph/intern/depsgraph_eval.cc (+1, -1) (Diff)
/source/blender/depsgraph/intern/depsgraph_physics.cc (+15, -14) (Diff)
/source/blender/depsgraph/intern/depsgraph_tag.cc (+16, -6) (Diff)
/source/blender/depsgraph/intern/depsgraph_types.h (+20, -1) (Diff)
/source/blender/depsgraph/intern/depsgraph_type_defines.cc (+1, -1) (Diff)
/source/blender/depsgraph/intern/eval/deg_eval_flush.cc (+24, -9) (Diff)
/source/blender/depsgraph/intern/nodes/deg_node.h (+2, -1) (Diff)
/source/blender/depsgraph/intern/nodes/deg_node_component.cc (+6, -4) (Diff)
/source/blender/depsgraph/intern/nodes/deg_node_component.h (+7, -6) (Diff)
/source/blender/depsgraph/intern/nodes/deg_node_id.cc (+2, -2) (Diff)
/source/blender/depsgraph/intern/nodes/deg_node_id.h (+3, -3) (Diff)
/source/blender/depsgraph/intern/nodes/deg_node_operation.cc (+13, -4) (Diff)
/source/blender/depsgraph/intern/nodes/deg_node_operation.h (+17, -9) (Diff)
/source/blender/depsgraph/intern/nodes/deg_node_time.cc (+3, -2) (Diff)
/source/blender/depsgraph/intern/nodes/deg_node_time.h (+1, -1) (Diff)
/source/blender/blenkernel/intern/object_update.c (+3, -3) (Diff)
/source/blender/depsgraph/DEG_depsgraph.h (+5, -4) (Diff)
/source/blender/depsgraph/DEG_depsgraph_build.h (+13, -4) (Diff)
/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc (+23, -35) (Diff)
/source/blender/depsgraph/intern/builder/deg_builder_nodes.h (+1, -1) (Diff)
/source/blender/depsgraph/intern/builder/deg_builder_relations.cc (+48, -28) (Diff)
/source/blender/depsgraph/intern/builder/deg_builder_relations.h (+1, -1) (Diff)
/source/blender/depsgraph/intern/debug/deg_debug_relations_graphviz.cc (+19, -11) (Diff)
/source/blender/depsgraph/intern/depsgraph.h (+6, -4) (Diff)
/source/blender/depsgraph/intern/depsgraph_build.cc (+65, -42) (Diff)
/source/blender/depsgraph/intern/depsgraph_eval.cc (+1, -1) (Diff)
/source/blender/depsgraph/intern/depsgraph_physics.cc (+15, -14) (Diff)
/source/blender/depsgraph/intern/depsgraph_tag.cc (+16, -6) (Diff)
/source/blender/depsgraph/intern/depsgraph_types.h (+20, -1) (Diff)
/source/blender/depsgraph/intern/depsgraph_type_defines.cc (+1, -1) (Diff)
/source/blender/depsgraph/intern/eval/deg_eval_flush.cc (+24, -9) (Diff)
/source/blender/depsgraph/intern/nodes/deg_node.h (+2, -1) (Diff)
/source/blender/depsgraph/intern/nodes/deg_node_component.cc (+6, -4) (Diff)
/source/blender/depsgraph/intern/nodes/deg_node_component.h (+7, -6) (Diff)
/source/blender/depsgraph/intern/nodes/deg_node_id.cc (+2, -2) (Diff)
/source/blender/depsgraph/intern/nodes/deg_node_id.h (+3, -3) (Diff)
/source/blender/depsgraph/intern/nodes/deg_node_operation.cc (+13, -4) (Diff)
/source/blender/depsgraph/intern/nodes/deg_node_operation.h (+17, -9) (Diff)
/source/blender/depsgraph/intern/nodes/deg_node_time.cc (+3, -2) (Diff)
/source/blender/depsgraph/intern/nodes/deg_node_time.h (+1, -1) (Diff)