When I hit "Clear custom split normal data" it clears them from the whole object, which is not what I want.
Is there some way how to apply it only to specific selected face(s)?
Blender Stack Exchange is a question and answer site for people who use Blender to create 3D graphics, animations, or games. It only takes a minute to sign up.Sign up to join this community
You can aim a Data Transfer modifier at a vertex group. Vertices in the group will receive the data from the chosen source. Those not in the group will not.
Top left, below: A cylinder with two regions of faces split out, and left where they were, so the normals do not interpolate. Top right, an intact version of the Cylinder.. ('Form')
.. Bottom left, the 'D_XFer' vertex group. Bottom right, the normals partially transferred from 'Form', to the cylinder with split faces, according to the group.
If you apply the modifier, its result becomes a Custom Split Normals layer.
So, the steps I was thinking of go as follows:
This should pick up the desired normals from the original, leaving the others cleared. When you apply the modifier (in Object Mode), a new Custom Split Normals data layer will be created on the duplicate, which is a partial copy of the original's. So you will have 'Cleared Custom Split Normal Data for selected faces.'
There may be better approaches altogether, repairing topology by remodelling? or simply reassigning split normals from scratch, using 'Autosmooth' in the object's 'Data' tab 'Normals' panel?... but this is a way to transfer some normals, but not others.
This is probably due to the effect of autosmooth. When you delete custom normals, you're suddenly using your autosmooth. If the autosmooth angle is set low, your cylinders (for example) will appear flat shaded. (Autosmooth is maybe poorly named, because what it does is automatically sharpen edges, not smooth them.)
Look in properties/object data/normals for autosmooth. Either disable this, or set the angle to a higher value. An autosmooth of 180 degrees is the same thing as no autosmooth.
The problems you're having shouldn't be due to your geometry normals, just from smooth settings, so you don't need to clear it from just selected faces. However, if you needed to do that, what you'd actually have to do is have custom normals for all vertices, but some of them could be your base geometry's normals. You could use a vertex group limited data transfer modifier, copying custom normals from nearest face and best matching normal, targeting a modified copy of your base mesh (probably, just with custom normals deleted) to "restore" your base normals on a vertex-by-vertex basis.