4
$\begingroup$

I have a mesh that needs to be split up for game design purposes (so that parts of the model can be swapped out with clothing slots) - but, naturally, splitting the mesh causes seams around the edges of each body part where the vertex normals don't align.

I know it's possible to bake this into a normal map, but the results I'm getting when I try that seem imperfect (it seems the game engine is interpreting the normal map slightly differently to Blender - marginally different Phong interpolation, normal map interpretations, or perhaps I'm just not very good at merging this into the existing normal maps for the base model).

I'm wondering if (and if so, how) I could instead copy across the vertex normals from a merged master mesh (or get the normals to retain their orientation when split) in order to fix this at the mesh level, with the matching vertices on the seams on both parts sharing the same normal.

$\endgroup$
3
$\begingroup$

You can use for this task Data Transform Modifier.

You will need to have both meshes in the exact same place.

To the mesh with holes add Data Transfer Modifier, select original mesh as a source, check Face Corner Data and Custom Normals and select Nearest Corner Of Nearest Face.

You will be also prompted to enable AutoSmooth, of course do this in mesh Data tab.

overview

$\endgroup$
  • $\begingroup$ That looks very promising - I've yet to test how it exports and compiles, but that certainly hides the seams in Blender. Thanks! $\endgroup$ – RagnarokEOTW Jan 9 '18 at 17:04
1
$\begingroup$

Based on the other answer I created a Blender add-on for this exact purpose called TiNA which allows you to more easily transfer normals between objects. TiNA basically turns the somewhat overwhelming Data Transfer Modifier into a set of more comprehensible operations.
There's a special branch for those using Blender 2.80 beta.

TiNA|

 Hotkey           | Operation 
------------------|-------------------------------------------------------------------
 Alt+N            | Transfer Normals from selection to active object
 Shift+Alt+N      | Transfer Normals from active object to all other selected objects
 Ctrl+Shift+Alt+N | Clear Custom Normals data for entire selection
 Alt+W            | Wrap Normals

In your case you could transfer the normals from what you call the master mesh by selecting all objects, and - with the master mesh as your active one - hitting Shift+Alt+N.

Example results

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.