2
$\begingroup$

When I hit "Clear custom split normal data" it clears them from the whole object, which is not what I want.

enter image description here

enter image description here

Is there some way how to apply it only to specific selected face(s)?

$\endgroup$
1
  • $\begingroup$ You can partially transfer normals to a duplicate. See answer. $\endgroup$
    – Robin Betts
    May 8, 2021 at 20:41

2 Answers 2

1
$\begingroup$

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.

enter image description here

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')

enter image description here

.. 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:

  1. ShiftD make a duplicate of your problem object
  2. Clear Custom Split Normals on the copy, (giving you some unwanted loss of smoothing, as described)
  3. Assign the vertices whose smoothing you would like to restore from the original to a vertex group.
  4. Give the copy a Data Transfer modifier, targeted on the vertex group, with the original as its source object.

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.

$\endgroup$
7
  • $\begingroup$ So if I now understand it correctly, this only works in case you have identical 2nd object that has no such artefacts - if so this is useless for me unless I am corrected in my understanding of this solution. $\endgroup$
    – qraqatit
    May 9, 2021 at 20:13
  • $\begingroup$ Hi @qraqatit.. I may have misunderstood your question? I've put some steps in an edit of the answer... if some are still incomprehensible, or I've simply got the wrong end of the stick, don't hesitate to call again. $\endgroup$
    – Robin Betts
    May 9, 2021 at 20:35
  • $\begingroup$ you probably misunderstood my problem or it may be me not explaining enough/correctly (english is not my native lng): problem with split normals comes when I am removing existing and adding new vertices/faces to the object so I cannot use any copy of previously correct version of the object as it would have different triangles (like I needed specific section would create rectangle consisting of two triangles where the original object had mess of several triangles not creating the rectangle in the middle as I wanted, so I reedited it to my need producing those split normals in the process). $\endgroup$
    – qraqatit
    May 9, 2021 at 21:01
  • $\begingroup$ @qraqatit It won't matter that your new topology is different, the transfer depends on location only .. you can still transfer the normals from the unchanged end of your object... you can share your file, if it helps, on pasteall.org/blend $\endgroup$
    – Robin Betts
    May 9, 2021 at 21:16
  • 1
    $\begingroup$ I'll try that (in fact that was basically what I was doing except the recalculate normals and clearing sharp edges) + I need triangles, not quads, as it'll go into a software that requires tris. My problem is that because of the nature of how it is handled later on outside the Blender when I export it as OBJ file, all already defined sharp edges and special normals needs to stay intact otherwise the sw would/could crash, therefore I wanted to know if there is some way how to apply clearing custom split normals just for the selected faces leaving everything else intact exactly as it is. $\endgroup$
    – qraqatit
    May 10, 2021 at 15:31
-2
$\begingroup$

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.

$\endgroup$
0

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .