2
$\begingroup$

I have a character mesh where different parts of the body are separate objects (body, head, mouth) but the vertices line up as if it could be a single mesh.

I am getting shading differences between the meshes and I am wondering how I can fix this? Pictures are below.

It seems like a normals related problem, but the normals are all facing the correct direction. Maybe they are weighted incorrectly?

I would like to keep the objects separate as the different parts can be swapped out.

Here is a link to the blend file (without textures)

enter image description here

enter image description here

$\endgroup$
6
  • $\begingroup$ A split edge will look like a sharp edge. If you want to keep the meshes separate, you will have to deal with this problem. Did the parts actually need to be changed out, or is it just the texture that needs changing? $\endgroup$
    – TheLabCat
    Mar 11 at 1:41
  • $\begingroup$ There is some geometry to change but I guess I can work around it. I was mainly wondering if it's possible $\endgroup$
    – user668074
    Mar 11 at 1:58
  • $\begingroup$ I’ve been stuck on it for a while, and had decided it wasn’t. However, in terms of altering the geometry, you might be able to get some pretty good results using shape keys. $\endgroup$
    – TheLabCat
    Mar 11 at 1:59
  • $\begingroup$ Share your file. blend-exchange.com $\endgroup$
    – R-800
    Mar 11 at 3:08
  • $\begingroup$ @R-800, added to main post $\endgroup$
    – user668074
    Mar 11 at 3:25
3
$\begingroup$

To fix your normals I had to follow several steps.

Before beginning, I recommend that you unlink your world node and then create a new one for your scene, as doing this will quickly retrieve the default world settings without destroying your existing ones (be sure to first mark your present world node as protected by giving it a fake user, with the shield icon button, or else the unlinked node won't save with your file). This return to default settings will make it easier to see the results of the below changes in renders. I also created a sun light afterwards, because it's very dim after removing your modified world settings. I then turned off the selectability of this sun light in the Outliner, because I'm going to be box selecting the entirety of your meshes parts when all I want are mesh parts.

Start by selecting all of your mesh parts and then pressing Shift + d to duplicate them, then press x to constrain along the X axis, and drag these parts to the side so that they can be easily seen as well as selected independently of the originals. Left-click to conclude this transform operation, then press Ctrl + j to join all of these copies -- which should still be selected -- together as one object. Then press m bring up the Move to Collection menu, and click the option to create a New Collection for this new copy of your mesh. I renamed my mesh copy at this point to have the same name as its collection. With the new mesh copy still selected, move it back to the World space origin where it began. For the below steps to work, it must occupy the same space as the original. Now go into the Outliner and hide the new copy's collection so that we can only see the original version of the mesh.

Select all the parts of the original version of your mesh, then go into the Object Data tab of the Properties Panel, and with the Normals section expanded, hold down the Alt key, and while it is held, click the Autosmooth checkbox. Holding Alt will allow the change to take place for all selected objects at once. With Alt still held, change the angle value to something around 90 Degrees. You will want more than the default 30, or some of the normals will not be smooth.

enter image description here

The above step is intended to prevent Blender from complaining with a prompt that this be done when in the middle of performing the next step.

Side note: I noticed that you had two armature modifiers on all these parts. This is very likely to not be what you intend, nor want. You might want to purge them from these objects before beginning the rigging process later. I say this because, I have found that extra armature modifiers often get added accidentally, and often lead to double transformation weirdness. If you don't mean for there to be two, remove one of them. Probably remove both, as you will likely get yet another one added automatically when binding a new armature. If you want a fast way to do rid yourselves of them, delete both armatures from any one mesh part. Then box select all the mesh parts, including the selected one. The one you selected first will remain the active object, even though it wasn't selected last. Now press Ctrl + l to bring up the Make Links menu, and choose Modifiers. The active object has no modifiers, and now, neither will any of the others).

Select any one of the mesh parts (it doesn't matter which one) so that all the others are deselected automatically, and then go to the Modifiers tab in the Properties Panel. Choose to create a Data Transfer Modifier. Under the Source text field, enter the name of your copy mesh created earlier. Now, check the Face Corner Data checkbox and expand the same section to reveal more options. Click the Custom Normals button, then under the newly accessible Mapping option, choose Nearest Corner of Nearest Face. Leave all the other modifier settings at their defaults.

enter image description here

Now, with this modified object still selected, box select all of the associated mesh parts again, and the modified one will become the active object of all of the other ones selected, even though it was already selected beforehand. This will make it the source for all the others in the following operation. Press Ctrl + l to bring up the Make Links menu, and choose Modifiers. This will copy the modifier you just made to all the others.

At this point, your normals should be fixed. You can test this in renders. Make sure the copy version of your mesh -- which was only needed as a source for the repaired normals -- is set to NOT show in renders, either by turning off its display filter in the Outliner, or by deleting it outright, since you won't need it anymore.

If you want all these data transfer modifiers applied, one quick way to do it is to select all the mesh parts, and then go to Object > Convert To > Mesh, which will save you the trouble of applying the Data Transfer modifiers one at a time.

$\endgroup$
2
  • $\begingroup$ Wow, amazing, it seems to have worked! $\endgroup$
    – user668074
    Mar 11 at 9:37
  • $\begingroup$ That's great. If you found this information useful, consider either voting it up or marking it as the preferred answer so that others with the same problem can find it in search results. $\endgroup$
    – R-800
    Mar 11 at 9:45

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.