Page MenuHome

Fix T81997: Subsurf Optimal Display sticks after object conversion
ClosedPublic

Authored by Philipp Oeser (lichtwerk) on Oct 23 2020, 10:32 PM.

Details

Summary

When using Optimal Display, some edges are not flagged ME_EDGEDRAW |
ME_EDGERENDER.
When the modifier is applied through the UI in the modifier stack this is
prevented because the modifyMesh callback is run with
MOD_APPLY_TO_BASE_MESH (this will effectively turn of Optimal
Display).
When converting to mesh though, this will just get an evaluated mesh
(where the edge flags are still the same as with the subdivision
modifier).
Now ensure every edge is flagged to draw after conversion

Diff Detail

Repository
rB Blender

Event Timeline

Philipp Oeser (lichtwerk) requested review of this revision.Oct 23 2020, 10:32 PM
This revision is now accepted and ready to land.Oct 27 2020, 7:52 PM
Campbell Barton (campbellbarton) added inline comments.
source/blender/editors/object/object_add.c
2689

This isn't correct AFAICS, the edges should draw based on edge-angle, see bmesh_quick_edgedraw_flag, we could have a function that does this, it could run here, after applying transform too (and a few other operations that change object data in object mode).

Even so, this is an improvement IMHO from the current state, this line should comment that full edge draw calculation should ideally be performed.