Set Mesh Normals Does not Merge Objects Properly/Cleanly

So, on Blender 5.0, I wanted to try the Set Mesh Normals node, but every setup I’ve seen from Blender 4.5 does not look right for me:

It either does not merge the objects at all, or it just breaks the normals of the entire object. There is no in-between:

I’ve checked that scale’s applied, I’ve checked face orientation, I’ve tried subdividing both meshes, switching to tangent space doesn’t fix it, and it’s still just… busted. I don’t know if something from Blender 5.0 broke the node, but this is not the magical, “Merge objects in Blender seamlessly!” node I’ve heard so much about.

Here’s the .blend file if you want to see if you can get it to not look horrendous:
cup of coco.blend (1.4 MB)

I don’t have a Blender at hand to see for myself, make sure you’re sampling the normal and using that in the set mesh normal node

Here’s a screenshot of the node tree if that gives you a better idea:

This was from various tutorials that all had pretty much the same setup and they worked fine.

Lower the From Min and From Max values. Something in the range of 0.0 - 0.03


Your cup is “just” 0.6m in diameter…

I adjusted the size of the cup, but it still has this hard edge that I’m just not a fan of:

But fanning it out more just breaks the normals of the cup:

I’m no Geometry Nodes expert, but is it possible to have this custom modifier have vertex groups functionality? Could that maybe allow me to smooth out the spread, but stop it from ruining the rest of the cup?

Any chance the cup isn’t defined enough ? if increasing the distance suddenly breaks the cup surface, it may be that there’s not enough vertices to ease the normal transfer

That shouldn’t be necessary, but yes you can do it. Use a named attribute node to multiply the output of the map range, before it goes into the mix factor.

Its doing nothing wrong. It takes the normals of the nearest surface, what is in your case the backfacing faces of the handle of your cup. And those are not even close in direction to the sides of the handle, what I guess you want to blend into.

So delete the backfacing faces and move the handle a bit into your geom. Then use a really tiny distance range like 0.0 to 0.01 or to 0.02

Y’know, I was suspecting the setup wasn’t working very well for me because I was using an object that’s noticeably more complicated than a sphere + cylinder, but that confirms it. But I don’t want to delete the interior faces of the cup, that’s pretty obnoxious to do.

Not the cups inside, the handles backside.

Dont know why you find that obnoxious, but you can also do it the other way around and map your handles normals to that of the cup. Its not giving the exact same effect, but that way the reference surface is suiting better and you dont have to delete any faces.

I tried the second method you recommended, but it still doesn’t look right:

The first method, I also tried that and that did not fix the normals:

You don’t need geometry nodes to do this, nor does it need to be separate objects. One object with good topology has perfect normals if you turn auto smooth on:



Is your merge placed after the subdiv modifier. Move the handle a bit into the geom itself. You want an even shading, so get an even distance by doing that.

Yes, the merge modifier is after the subdivision modifier, and no, moving the handle does not help:

Upload it again with the current setup. I’ll have another look. Think you just forgot something.

Here’s the most recent version:

cup of coco.blend (606.4 KB)

The merge is still at the cup

Anyway

  • Set the empty GN on Plane+Sub to Merge
  • Delete the Geometry Node on Circle+Sub
  • Go into your merge nodesetup and cange the object info node to Circle + Sub

Change to Material Preview and move the handle a bit forward along the X axis until you are happy with it.

I’m not able to get a version that doesn’t break the shading to some extent:

Whoever says that this will solve merging objects together and make it easier is lying.

Again, you don’t need to merge this. It took less time to make my example than it’s taken to write my replies to this thread. If you’re not happy with the merge method, do it as one object

Hmm, ok I will add an working example for every version.

And nobody is lying about it. Generally. The unmodified shading isnt wrong, its just that you dont like the shades there, so you added a quick hack to blend the normals and fake a different geometric shape or surface direction. But the logic you are using is quite simple. Its just taking an arbitrary nearest point and blends between the own and that found normal linearly, with all its drawbacks and implications. Its not rotating the normals, its not maintaining length…
So in short, its an effect that gets better if 2 given normals dont differ too much. It logically cant work well in any arbitrary scenario.

Thats why I told you about removing those backfaces if you sample them. Its “merging” objects together or blending them if each 2 normals are in just different to an acceptable level and or if the effect range is small.

Another thing you are doing is to make that cup smaller and smaller. Your first version was 60cm tall. The second one now only 4cm. Blender is just working with float values. You make it harder and harder to set up and leave blenders mathematically sweet spot.

You should also be aware that if you just alter eg the cup shading and have dark shades on the handle, that those shades wont fade away. You are just changing the cup. to adapt to those dark shades instead. So think about stuff like that before you decide which of the objects you blend and in what range or how good blendables should shape looks like.


This is witthout gn, with gn, and then both with deactivated shadows.

cup of coco HandleShading.blend (593.4 KB)

cup of coco Cupshading.blend (604.3 KB)