Page MenuHome

Strange edge marks after Merge by Distance
Closed, ResolvedPublicDESIGN

Description

System Information
Operating system: Darwin-19.6.0-x86_64-i386-64bit 64 Bits
Graphics card: AMD Radeon Pro Vega 48 OpenGL Engine ATI Technologies Inc. 4.1 ATI-3.10.18

Blender Version
Broken: version: 2.91.0 Alpha, branch: master, commit date: 2020-09-10 21:55, hash: rB66078594d130
Worked: (newest version of Blender that worked as expected)

Short description of error
[Please fill out a short description of the error here]

Exact steps for others to reproduce the error
[Please describe the exact steps needed to reproduce the issue]
[Based on the default startup or an attached .blend file (as simple as possible)]

Hidden Martian Message when Merging Vertexes by Distance

I was attempting to remove vertexes in a mesh under the outer mesh and decided to try merge by distance. As I dragged the distance right these lines appeared where the vertexes were deleted. I don't know if this is a "feature" or what but I can't seem to get rid of these highlighted edges.

I find using sub-surface modifier made my mesh jump to 150K and I tried to Decimate after to reduce it by ~75%. I ended with a nearly parallel mesh under the top mesh which is the devil to select and remove. I did find that click-Option on a vertex and holding the shift afterwards and then clicking on a connected edge that fades off can select a connected subsurface vertex. I hope in the future there is an easier way.....

Also I was able to select all of these marked edges by selecting / similar / sharp edges, but then it created Face holes in my mesh.

Event Timeline

Campbell Barton (campbellbarton) changed the task status from Needs Triage to Needs Information from User.Sep 26 2020, 5:27 AM

This report is missing:

  • Last version that worked.
  • Exact steps to redo the error.
  • A blend file (unless there are simple steps to redo this from the default startup).

Look at the screen captures. I sent the blend file to play with. SO, I selected the area that has a mesh under the top mesh which happened when using Modifier Decimate after using Subdivision Surface to remove unnecessary quads. I noticed the double mesh in the face in Solid view when I was finished Decimating and selected the vertexes using wireframe. Next I selected Mesh / Cleanup /Merge by Distance. Upon sliding the Merge by Distance to the right, these marks start appearing. I used the same file again and repeated the process to see what would happen if I continued dragging right and the screen capture shows the result.

Pushing on with the example, this is obviously the wrong way to try to rectify the "under mesh" situation as I will never be able to put eyes on my horse with this still messed up mesh. But I am curious about this occurrence nonetheless. I looked at it in Shading view and it looks alright although there may be some flipped faces to fix as well. I will go to a much earlier version before using Decimate and try something else. I wish Decimate worked to somehow detect and reconnect/remove parallel "under" meshes as it is being used. Maybe this will be a future enhancement.

Apparently using mirroring to try and add eyes to the face does bad things? Unfortunately I'm not sure if I had Mirroring ON when using Decimate--if that complicated things -- I think not. However the effect is very direct when switching it ON and OFF as shown in the screen captures. It looks like the problem is caused when using mirroring as it attempts to mirror using an already existing mesh -- maybe a beginner's mistake, but then how can one make changes later to add more detail using Extrude? I'm thinking that because Sculpt has Mirroring built in that the assumption is that it would be used for this situation.....

Ankit Meel (ankitm) changed the task status from Needs Information from User to Needs Triage.Oct 7 2020, 9:34 AM

Hi Ankit,
Thanks for the interest. At this point I'm not sure this needs more attention. The more I read about using AMD's GPU with Blender the more I'm coming to the conclusion that it is not fully compatible. This is an excellent case.
I continued to work with this mesh and ignored the colored edges since they didn't affect the look of the Shading. Eventually I found the Add-on, Mesh: 3D Print Toolbox. One of the choices actually selected all of the SUB-meshes in my entire mesh and corrected it with Make Manifold -- a miracle!
I am just hanging in and muddling through the learning process" by doing" even knowing that without a CUDA compliant / imitating GPU that things are not going to act "normal". I will endeavor to find "errors" and report them but this one I would suggest is just a GPU anomaly that can be ignored but now "known".
Paul

Some clarification:

Here is a much simpler file to check:

I will now check if this change is intentional, not sure yet...

Philipp Oeser (lichtwerk) changed the task status from Needs Triage to Needs Information from Developers.Oct 8 2020, 2:59 PM

So, to quote from the commit:

On the technical side, this ports mesh_normals_loop_custom_set
to BMesh, and then uses a temporary Custom Data layer to store
the normals as vectors for the duration of the above mentioned
operations. When the normals are converted back to custom data,
the caller can choose whether to mark edges as sharp to preserve
distinct normals, or just average them instead. All but Remove
Doubles choose to average for now.

this seems to be intentional, but I am unsure about the results?


Code says:

/* Current normal differs too much from org one, we have to tag the edge between

  • previous loop's face and current's one as sharp.
  • We know those two loops do not point to the same edge,
  • since we do not allow reversed winding in a same smooth fan.

*/

From first glance, this seems off in some places?

@Campbell Barton (campbellbarton), @Alexander Gavrilov (angavrilov) : Am I wrong?

Thanks you Philipp for showing how to turn off the green edges, but I am curious about why they were marked initially. I can't see anything "sharp" about them as they are on a flat mesh, not on a steep edge. I turned them off an ran Mesh Analysis in Wireframe and there are lots of other "errors" colored but none of those green edges. I then ran 3D Print add-on and Check All. It showed 7 Sharp Edges but none of the green and exactly as expected on tight angles. The marked green edges seem to be specious and perhaps an artifact of having done a Vertex Merge by Distance? Yes, averaging instead of marking seems a better option -- marking green is just worrying and doesn't seem relevant.

@Alexander Gavrilov (angavrilov) this doesn't seem to be working all that well, in the cases I was testing.

When there is any manually modified normals there is a high chance that any merging causes the surrounding edges to become split.

Since merge-by-distance is the only operation that uses this behavior. Can you show an example where this works usefully?

This seems more like it could be an option for the mesh decimate operator.

Here is an example of case where attempting to preserve custom normals by generating shapr edges makes sense imho (once you have merged the mesh back into some sort of cube, compare shading whit what you get if you remove sharp edges).

Think this should be an option. Also, this is missing from the modifier equivalent (weld)...

Bastien Montagne (mont29) changed the subtype of this task from "Report" to "Design".Oct 15 2020, 5:08 PM
Bastien Montagne (mont29) moved this task from Backlog to Under Discussion on the Modeling board.