Page MenuHome

Bevel Tool with "Clamp Overlap" Leave Degenerate Geometry
Closed, ArchivedPublic

Description

System Information
Windows 10 x86-64
NVIDIA GeForce GTX 670

Blender Version
Broken: 2.77 22a2853

Short description of error
Bevel tool with "Clamp Overlap" leaves degenerate geometry.

Exact steps for others to reproduce the error
Take any polygonal object (a cube works for simplicity).
Select some nearby edges (ex: two opposite edges on a cube's side) and attempt to bevel with "Clamp Overlap" selected.
Increase the bevel until they touch.
There will be degenerate (0-area, etc.) geometry sandwiched between the bevels, which will do all the usual nasty things (wreck smoothing, confuse edge/face loops, etc.)

Workaround: Run "Remove Doubles" on the affected geometry. The problem is that there might be elsewhere on the model that (for some reason) you might want degenerates? It's difficult to select the degenerate section after the bevel has been performed without selecting the whole mesh. The bevel tool should have enough information to isolate the degenerates that it's responsible for before it returns, though, so it should have the option to clean up after itself (without touching the rest of the model).

This might straddle the line between feature and bug. Sorry if this is too much of the former!

Demo Blend file:

Details

Type
Bug

Event Timeline

Scott Michaud (ScottMichaud) created this task.
Scott Michaud (ScottMichaud) raised the priority of this task from to Needs Triage by Developer.
Bastien Montagne (mont29) triaged this task as Normal priority.

Don’t really see a bug here, removing zero-sized geometry is not really task of bevel tool itself here imho… @Howard Trickey (howardt)? @Campbell Barton (campbellbarton)?

My longer term desire is to incorporate the same algorithms I have in my inset add-on which detects when edges and faces collide / collapse and does the right thing. I've been working on a library that can be used for inset, but that is dragging and anyway it will be non-trivial to adapt to the bevel case.

The "Clamp Overlap" on bevel is already pretty hacky, and doesn't precisely clamp at the first point of overlap always. I would like to make this a TODO rather than leaving it as a bug, because fixing it is quite involved.