Whys is this happening?

Hi there!
I am new to blender and when I am merging vertices, sometimes this happens… I don’t know why neither how to fix it.

Thanks!

Hello and welcome to BlenderArtists !

Try that :
In edit mode, select all points and do Shift-N .

If that doesn’t work, select all points and do “M” and select “Merge by distance”, then Shift-N again.

See if one of these two fix the issue, and then we may talk about what these shortcuts are doing !

1 Like

Hi… nope, it did not work. I tried recalculating normals already, and still gets that weird shading on faces after merging vertices.

The model is a low poly kitbash that comes with all faces not connected

thanks for your fast reaply

I don’t know what version of Blender you are using. If it’s 3.1 try getting here:


And delete custom split normals data, if there’s something. Maybe it doesn’t solve the problem, but it’s one of the possible sources of something like that.

1 Like

That was it!! thanks!

1 Like

I have hundreds or thousands of meshes with that problem, is there a way to clear this for all at once?

Join them all, clear it, merge vertex, then separate by loose parts?

Just a second. I will see if there’s a way to do it without merging.

I couldn’t find a way to apply all at once, but once you have the tab open in the right place it’s easy to just select the model and apply. The problem with joining the models is that you will mess up with the origins and the materials stack. Maybe, you can also mess up the UV maps created if there’s some conflict in the names. It also could affect vertex groups and many other custom properties you could have applied to each object individually if you join them.

Doing one by one is less work unless you can find an add-on to make the work easier.

You could try this: with all the objects whose normals data you want to clear selected, run this script in the text editor:


import bpy

for ob in bpy.context.selected_objects:
    bpy.context.view_layer.objects.active = ob
    try:
        bpy.ops.mesh.customdata_custom_splitnormals_clear()
    except:
        pass
2 Likes

Thanks you all. Gonna try it.