Page MenuHome

separate by loose parts breaks custom normals
Confirmed, NormalPublicBUG

Description

System Information
Operating system: Windows-10-10.0.18362-SP0 64 Bits
Graphics card: GeForce GTX 1070/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 452.06

Blender Version
Broken: version: 2.91.0 Alpha, branch: master, commit date: 2020-08-24 10:28, hash: rBcb8da6efce80
Worked: (newest version of Blender that worked as expected)

open a model that has multiple parts and has custom normals, go into edit mode, select all faces, press p, choose select by loose parts. The normals are lost on all but one of the pieces. Seperate by selection doesn't lose normals

Event Timeline

Philipp Oeser (lichtwerk) changed the task status from Needs Triage to Needs Information from User.Thu, Aug 27, 9:47 PM

Cannot reproduce:

Looks like this in multi-object-editmode afterwards (which is the same as prior):

Does it fail for you in above fail as well?
If not, could you provide a simple example blend file that shows the issue?

I thought you might have hit the nail on the head, so I joined all of the objects together and then went into edit mode and tried to separate by loose parts, but the problem still persists.

Open the below file, select the object, go into edit mode, press p, choose separate by loose parts. The custom normals are still there for both resulting objects, but the large object's custom normals are completely mangled up. Manually selecting each piece one at a time and choosing separate by selection works fine.

Hm, I do see a slight difference between the methods indeed.
Is that what you mean?

one object

separate by loose parts

separate by selection

It’s easier to see the problem by looking at the shading in the top right corner of the recess rather than the normals, but yes, if you’ve followed the instructions above correctly then these graphics will be showing the problem.

Philipp Oeser (lichtwerk) changed the task status from Needs Information from User to Confirmed.Tue, Sep 1, 4:57 PM
Philipp Oeser (lichtwerk) changed the subtype of this task from "Report" to "Bug".

I have not investigated in depth, but there is some difference in bmo_mesh_copy and BM_mesh_copy_arrays which is likely to cause this.

I believe this is a bug.