Page MenuHome

Edit Mode: Rework display to differentiate selection modes

Authored by Clément Foucault (fclem) on Mar 15 2019, 5:38 PM.



This removes the large edges and instead use colors to hint in which
selection mode the user is.

The component in each individual selection mode is more prominent to add
more emphasis. The other components are less prominent and dimmed.

A minor default theme changes needed to be made to keep clarity in all

Forcing old behavior (no selection mode hit) could be done quite easily
by just making the 2 booleans true (selectFaces and selectEdges).

Diff Detail

rB Blender

Event Timeline

I think this works well overall. It makes it clear which selection mode you are using, without adding ornaments and things like thick edges, so that the edit mode display is always readable.




Here, I feel like the selected edges blur together together with the selected faces. It's hard to see the boundaries of faces because the edges and faces have almost the same resulting color.

I think it would be nicer if the edges were dimmed more in this case, like so:

This does two things:

  • Improves readability of selected faces
  • Makes the visual difference even greater between edge and face select mode

Vert + Edge + Face:

@Clément Foucault (fclem) @William Reynish (billreynish) Just a quick question.
Why can't blender really highlight only the components (vertex/edges/faces) of the mode selected, without mixing it, like the majority of the 3D apps out there?
Quick example:

As you can see, it really highlights only the component of whatever mode that I'm in. When I'm in vertex mode, only the vertices gets highlighted, same with edges/faces. There's no mix (unless you're using multi component modes)

So why the faces gets highlighted as well when I'm in vertex or edge mode in blender? This is something that never happens in other 3D apps, and imo this is where most of the confusion starts.

@ThinkingPolygons (ThinkingPolygons): The reason is that, at least with the way Blender currently works, if you select all the vertices of a face in Vertex select mode and hit E to extrude, the face is extruded, not individual vertices. The same is true for other tools.

This could change in the future, but at least as it stands, we need to communicate the inferred selected edges and faces to users.

  • Edit Mode: Tweak Face Mode selected edge color

To me this is now really nice.

It's clear what you have selected and it's clear what selection mode you are in - all without adding ornaments and thick elements that take away from readability of dense meshes.

This revision is now accepted and ready to land.Mar 16 2019, 11:04 AM
Campbell Barton (campbellbarton) requested changes to this revision.EditedMar 17 2019, 1:33 AM

There are a few changes here which move towards geometry drawing being more subtle, making topology less readable, while this might be an acceptable trade-off if the difference is small enough, I think its worth avoiding where possible.

Currently this patch makes some draw-backs which I consider blockers.

Selection is no longer visible for faces with small surface area

When you're zoomed out in it's hard to make out there are any faces selected (for skinny or small faces).

(patch applied on the right, bottom has selection).

Edges are almost the same color as grid-lines

(patch applied on the right, top has no selection).

This revision now requires changes to proceed.Mar 17 2019, 1:33 AM

Perhaps the dimmed edges should not apply to Wireframe mode?

And as for small faces, we could brighten the edges a bit, so they are non-black but still darker than the selected faces. To make the faces stand out enough, we may have to increase the selected face opacity.

Loose edges still need to be visible when in shaded modes.

Looked into alternative w/ fclem: P950

  • Merge work done with @Campbell Barton (campbellbarton) during homestretch.
  • Rework coloring scheme a tiny bit.
  • Reduce facing factor.
  • Make the show edge overlay option work in face mode.
  • Apply clang-format

Generally fine,

Would set wire edit to black (not dark grey) - gives a touch more contrast - wire_edit = RGBA(0x000000ff).

Face select is nice & bright but may be too opaque for texturing, think it can be tweaked as needed though since changes would be subtle.

PS (getting 2x unused var warnings on build).

This revision is now accepted and ready to land.Apr 17 2019, 7:08 PM
This revision was automatically updated to reflect the committed changes.

Unfortunately after this change, the edges of the model are very very hard to see when you have faces selected. The issue is more noticeable in faces mode and when using different materials.
You can test it by selecting all polys of the cube and switching some matcaps.

Only with very bright materials or very dark, I can see a little better the edges.
Before we didn't had this problem, and tweaking the theme doesn't help much.
Any solution for this?

@Regnas (Regnas) with some matcaps the edges are indeed hard to see, we might need to reduce the face alpha, eg:

Think this looks reasonable (0.2 alpha).

diff --git a/release/datafiles/userdef/userdef_default_theme.c b/release/datafiles/userdef/userdef_default_theme.c
index a631bc398c0..5518cd94c14 100644
--- a/release/datafiles/userdef/userdef_default_theme.c
+++ b/release/datafiles/userdef/userdef_default_theme.c
@@ -322,7 +322,7 @@ const bTheme U_theme_default = {
                .edge_crease = RGBA(0xcc0099ff),
                .edge_bevel = RGBA(0x00a5ffff),
                .face = RGBA(0x00000012),
-               .face_select = RGBA(0xff990073),
+               .face_select = RGBA(0xff990033),
                .face_dot = RGBA(0xff8a00ff),
                .extra_edge_len = RGBA(0x150806ff),
                .extra_edge_angle = RGBA(0x4d4d00ff),

@Campbell Barton (campbellbarton) This improves things a little bit, but it's still a little hard to see imo.
The thing is, if you tweak the theme to look acceptable on dark materials it will start to look bad on bright materials and vice versa.
This is a tough situation really. Be able to clearly see the edges is very helpful.

I noticed this problem too.
Is there a way to disable in the theme that "edge fade/dim" effect that happens in vertex and faces mode? Imo, the difference in color/saturation in faces mode is more than enough to indicate that I'm in faces mode, the edges don't need to fade.
It's really really hard to work without seeing clearly the edges.

Well, a very nice movement in the latest build - make all wires step thinner!
It is looking better, especially with no antialiasing!

It looks just like my proposal from 2014, thank you^^

But there is an issue - vertex mode is not for “viewing vertices”, but for editing edges/topology by corner nodes called vertices, so it will be much better, if vertex mode will have edge mode’s wire thickness (to become thicker) instead of face mode’s.

Currently vertex mode is looking more like field of vertices, or even pointcloud, it is hard to view topological connections between them on a dense meshes.