Suggestion on how to use geometry nodes to merge hierarchical geografts

Issue #970 resolved
Suttisak Denduangchai created an issue

How to merge hierarchical geograft using Geometry Nodes

The important benefits of this technique over mergeDestructively() are

1. an ability of import more morph to both geografts and main mesh easily (the shapekey of main mesh can also be transferted to geograft merging)

2. Ability to import UV map to any mesh for example you import Genesis 8.1 to Blender (It will use Genesis 8.1 UV) then you decide to use Genesis 8 texture or texture from another gender (which is need correctly UV Map), you can import new UV Maps easily which is not possible with mergeDestructively() because of vertices number change.

Step 1 Import character to Blender

Right now, do not tick merge geograft checkbox yet, because we need to merge 1st layer of geofrafts first (Futalicious, Breasttacular, Fender bender to main mesh)

Step 2 Merge geograft using gemetry node

We will merge Futalicious, Breastacular, Fender bender to main mesh.

Then, we will re-enable Futalicous (click eye icon) then merge FullMonty and CoverUp with Futalicious

The result will be a mess but it’s ok. Switch to geometry nodes workspace and select Futalicious. You will see that Futalicious uses main mesh geometry nodes which is incorrected. Click the number 2 (make a single use) to duplicate geometry node group to Futalicious, then edit the node like this

Step 3 Fix up vertex group

We will need to merge the weight of “Geograft Edge” (of Futalicous) and “Geograft Edge.001” (Of FullMonty BBQ and CoverUp) vertex group of Futalicous, because “Geograft Edge” is used to select vertices for “Merge distance” operation

We will rename “Geograft Edge.001” in Futacilious to “Geograft Edge.CoverUp+BBQ” and rename “Geograft Edge” to “Geograft Edge.Futalicious” then I duplicate“Geograft Edge.Futalicious” to “Geograft Edge.Futalicious_copy”. Next, we will use “Vertex Weight Mix” modifier to mix like this

Third, we apply this modifier, this will update “Geograft Edge.Futalicious_copy” to have weight from both itself and “Geograft Edge.CoverUp+BBQ” and rename “Geograft Edge.Futalicious_copy” back to “Geometry Edge”

Then, we will select “FullMonty BBQ” there are both “Geograft Edge” and “Geograft Edge.001” (I don’t know why there are 2 of these), we will use “Geograft Edge.001” because it looks more completed by rename “Geometry Edge.001” to “Geometry Edge” and delete the other

If we select “Genensis 8.1 main mesh” now, the result will be like this in weight paint mode (You need to select “Geograft Edge” vertex group)

You will see that the “Geograft Edge” is missing around the “back” area, this requires manual painting. In my case, I need to paint “Fender bender”

Step 5 Finish

The final weight paint will look like this

It’s important to use the name “Geograft Edge” and “Geograft Mask” because these names are used in Geometry nodes modifier setting.

The final render will be seamless.

Comments (6)

  1. Thomas Larsson repo owner

    Hierarchical geografts are now supported. Basically the trick was to ensure that vertex groups have unique names and the geograft node trees are not shared.

  2. Midnight Arrow

    Blender 3.2 is getting named attribute nodes so users will be able to define attributes/vertex groups inside the node tree directly instead of having to bring them in from the modifier stack. It’s in beta right now, though I haven’t tested it yet.

  3. Log in to comment