When having smooth shading on a sphere and separating the top into a separate object the shading is no longer smooth over the 2 parts, there is a discontinuity: enter image description here

It turns out the separate action changes the normals: enter image description here

I understand blender recalculates the normals based on the mesh it knows within the object, but is there any way to override this behavior, so that on separation, the original normals from before the separate are retained?

  • $\begingroup$ Although there are more standard ways given in the answers here, if you have to do this a lot, or in awkward situations, the Y.A.V.N.E. add-on , (or others, as its name suggests,) might be worth a look. $\endgroup$ – Robin Betts Aug 29 '18 at 11:21

Normal at a point P is a vector that is perpendicular to the tangent plane to that surface at P.

That means when you separate the mesh the Normal will be 90 degrees to the surface at the edges.

To fix that issue you can copy the original sphere and use it on both parts in a Normal Edit Modifier.

enter image description here

  • $\begingroup$ thanks! but it seems i used a bad example. I took a sphere as example but I actually have an arbitrary smooth mesh. I saw there is a DataTransfer modifier as well, could i use that for copy/pasting normals..? I found if I check Face Corner data, check Custom Normals AND I place a copy of the object (before separate) right on top and hide it, I achieve the wanted result. However, as soon as I apply the modifier, the normals modification is lost :/ I need to apply the modifier since I export to fbx $\endgroup$ – mxttie Jun 2 '16 at 16:43
  • $\begingroup$ since you answered the original question, i will mark this question as solved and ask a new one. thanks $\endgroup$ – mxttie Jun 3 '16 at 16:17

I'm not sure if you can do all in one step, but in Edit Mode, you can go to the 3D Viewport > Toolshelf > Shading/UVs tab > Normals: and click on Recalculate. This should adjust all of your normals back to, well, normal!

  • 1
    $\begingroup$ unfortunately, this does not help as the normals in fact are correct or 'normal' :) at least, as far as blender is concerned $\endgroup$ – mxttie Jun 2 '16 at 16:30

The Data Transfer Modifier can help you in this kind of situation. Alternatively you could also use a Blender add-on I made for this exact purpose called TiNA. 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.


 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 an unsplit duplicate by selecting all three objects, and - with the unsplit duplicate as your active object - hitting Shift+Alt+N.

Example results


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.