[Bf-blender-cvs] [9ee7270e0ac] master: Geometry Nodes: require vertex groups data in nodes modifier

Jacques Lucke noreply at git.blender.org
Mon Dec 14 15:30:26 CET 2020


Commit: 9ee7270e0acc6d60c8eac9e25cca00aa384c0879
Author: Jacques Lucke
Date:   Mon Dec 14 15:28:24 2020 +0100
Branches: master
https://developer.blender.org/rB9ee7270e0acc6d60c8eac9e25cca00aa384c0879

Geometry Nodes: require vertex groups data in nodes modifier

Without this, the modifier evaluation code might remove any
vertex groups from the mesh for performance reasons.
We can't say for sure whether the node group will need the vertex
groups, but it is quite likely.

Ref T83357.

===================================================================

M	source/blender/modifiers/intern/MOD_nodes.cc

===================================================================

diff --git a/source/blender/modifiers/intern/MOD_nodes.cc b/source/blender/modifiers/intern/MOD_nodes.cc
index 6730ce1c8a8..652558655ce 100644
--- a/source/blender/modifiers/intern/MOD_nodes.cc
+++ b/source/blender/modifiers/intern/MOD_nodes.cc
@@ -1063,6 +1063,15 @@ static void freeData(ModifierData *md)
   }
 }
 
+static void requiredDataMask(Object *UNUSED(ob),
+                             ModifierData *UNUSED(md),
+                             CustomData_MeshMasks *r_cddata_masks)
+{
+  /* We don't know what the node tree will need. If there are vertex groups, it is likely that the
+   * node tree wants to access them. */
+  r_cddata_masks->vmask |= CD_MASK_MDEFORMVERT;
+}
+
 ModifierTypeInfo modifierType_Nodes = {
     /* name */ "GeometryNodes",
     /* structName */ "NodesModifierData",
@@ -1087,7 +1096,7 @@ ModifierTypeInfo modifierType_Nodes = {
     /* modifyVolume */ nullptr,
 
     /* initData */ initData,
-    /* requiredDataMask */ nullptr,
+    /* requiredDataMask */ requiredDataMask,
     /* freeData */ freeData,
     /* isDisabled */ isDisabled,
     /* updateDepsgraph */ updateDepsgraph,



More information about the Bf-blender-cvs mailing list