[Bf-blender-cvs] [203f9a49e29] master: Edit Mesh: Change color behavior

Clément Foucault noreply at git.blender.org
Fri May 24 19:23:46 CEST 2019


Commit: 203f9a49e29c82458a49efe856eb58f938eb537b
Author: Clément Foucault
Date:   Fri May 24 20:11:06 2019 +0200
Branches: master
https://developer.blender.org/rB203f9a49e29c82458a49efe856eb58f938eb537b

Edit Mesh: Change color behavior

- Make edges darker in vert & face select mode (making more
  contrast to not loose the topology). Downside is less select
  edges visibility in vertex mode. But I'm confident that it's not
  as painfull as it seems.

- Make select faces less saturated to have more color contrast
  between select faces and edges.

- Make unselected faces white to increase contrast with faces and
  edges. The brightening is negligeable for bright surfaces and
  help readability on darker surfaces. Reminder that if the faces
  overlays are too distracting (i.e: uv mapping, or texturing) they
  can be toggled off in the overlay panel.

Reviewers: billreynish, campbellbarton, brecht

Reviewed By: billreynish, campbellbarton, brecht

Subscribers: brecht

Differential Revision: https://developer.blender.org/D4941

===================================================================

M	release/datafiles/userdef/userdef_default_theme.c
M	source/blender/blenloader/intern/versioning_defaults.c
M	source/blender/draw/modes/edit_mesh_mode.c
M	source/blender/draw/modes/shaders/edit_mesh_overlay_common_lib.glsl

===================================================================

diff --git a/release/datafiles/userdef/userdef_default_theme.c b/release/datafiles/userdef/userdef_default_theme.c
index 5e49f9e641f..5da5649fed6 100644
--- a/release/datafiles/userdef/userdef_default_theme.c
+++ b/release/datafiles/userdef/userdef_default_theme.c
@@ -316,14 +316,14 @@ const bTheme U_theme_default = {
     .vertex_select = RGBA(0xff7a00ff),
     .vertex_bevel = RGBA(0x00a5ffff),
     .edge = RGBA(0x000000ff),
-    .edge_select = RGBA(0xff7200ff),
+    .edge_select = RGBA(0xff7a00ff),
     .edge_seam = RGBA(0xdb2512ff),
     .edge_sharp = RGBA(0x00ffffff),
     .edge_facesel = RGBA(0x4b4b4bff),
     .edge_crease = RGBA(0xcc0099ff),
     .edge_bevel = RGBA(0x00a5ffff),
-    .face = RGBA(0x00000012),
-    .face_select = RGBA(0xff990056),
+    .face = RGBA(0xffffff21),
+    .face_select = RGBA(0xffc8526c),
     .face_dot = RGBA(0xff8a00ff),
     .extra_edge_len = RGBA(0x150806ff),
     .extra_edge_angle = RGBA(0x4d4d00ff),
diff --git a/source/blender/blenloader/intern/versioning_defaults.c b/source/blender/blenloader/intern/versioning_defaults.c
index 61434fce2ae..fdeb2997b05 100644
--- a/source/blender/blenloader/intern/versioning_defaults.c
+++ b/source/blender/blenloader/intern/versioning_defaults.c
@@ -191,6 +191,8 @@ void BLO_update_defaults_startup_blend(Main *bmain, const char *app_template)
             v3d->overlay.texture_paint_mode_opacity = 1.0f;
             v3d->overlay.weight_paint_mode_opacity = 1.0f;
             v3d->overlay.vertex_paint_mode_opacity = 1.0f;
+            /* Use dimmed selected edges. */
+            v3d->overlay.edit_flag &= ~V3D_OVERLAY_EDIT_EDGES;
             /* grease pencil settings */
             v3d->vertex_opacity = 1.0f;
             v3d->gp_flag |= V3D_GP_SHOW_EDIT_LINES;
diff --git a/source/blender/draw/modes/edit_mesh_mode.c b/source/blender/draw/modes/edit_mesh_mode.c
index 2b17dd43ee5..b02625db3b6 100644
--- a/source/blender/draw/modes/edit_mesh_mode.c
+++ b/source/blender/draw/modes/edit_mesh_mode.c
@@ -373,9 +373,8 @@ static DRWPass *edit_mesh_create_overlay_pass(float *face_alpha,
   DRW_shgroup_uniform_vec2(grp, "viewportSize", DRW_viewport_size_get(), 1);
   DRW_shgroup_uniform_vec2(grp, "viewportSizeInv", DRW_viewport_invert_size_get(), 1);
   DRW_shgroup_uniform_ivec4(grp, "dataMask", data_mask, 1);
-  DRW_shgroup_uniform_bool_copy(grp, "doEdges", do_edges);
   DRW_shgroup_uniform_float_copy(grp, "ofs", depth_ofs);
-  DRW_shgroup_uniform_bool_copy(grp, "selectEdges", select_edge);
+  DRW_shgroup_uniform_bool_copy(grp, "selectEdges", do_edges || select_edge);
 
   DRW_shgroup_state_enable(grp, DRW_STATE_OFFSET_NEGATIVE);
   /* To match blender loop structure. */
@@ -455,7 +454,6 @@ static void EDIT_MESH_cache_init(void *vedata)
       }
       if ((v3d->overlay.edit_flag & V3D_OVERLAY_EDIT_EDGES) == 0) {
         if ((tsettings->selectmode & SCE_SELECT_EDGE) == 0) {
-          stl->g_data->data_mask[1] &= ~(VFLAG_EDGE_ACTIVE & VFLAG_EDGE_SELECTED);
           stl->g_data->do_edges = false;
         }
       }
diff --git a/source/blender/draw/modes/shaders/edit_mesh_overlay_common_lib.glsl b/source/blender/draw/modes/shaders/edit_mesh_overlay_common_lib.glsl
index 7d4cba66933..6aa20a9d21b 100644
--- a/source/blender/draw/modes/shaders/edit_mesh_overlay_common_lib.glsl
+++ b/source/blender/draw/modes/shaders/edit_mesh_overlay_common_lib.glsl
@@ -1,5 +1,4 @@
 
-uniform bool doEdges = true;
 uniform bool selectFaces = true;
 uniform bool selectEdges = true;
 
@@ -17,21 +16,23 @@ vec4 EDIT_MESH_edge_color_outer(int edge_flag, int face_flag, float crease, floa
 vec4 EDIT_MESH_edge_color_inner(int edge_flag)
 {
   vec4 color = colorWireEdit;
-  vec4 color_select = (selectEdges) ? colorEdgeSelect : colorFaceSelect;
-  color = (doEdges && ((edge_flag & EDGE_SELECTED) != 0)) ? color_select : color;
-  color = (doEdges && ((edge_flag & EDGE_ACTIVE) != 0)) ? colorEditMeshActive : color;
+  vec4 color_select = (selectEdges) ? colorEdgeSelect : mix(colorEdgeSelect, colorWireEdit, .45);
+  color = ((edge_flag & EDGE_SELECTED) != 0) ? color_select : color;
+  color = ((edge_flag & EDGE_ACTIVE) != 0) ? colorEditMeshActive : color;
 
-  float non_edge_select_alpha = (selectFaces && (edge_flag & EDGE_SELECTED) != 0) ? 0.75 : 0.4;
-  color.a = (selectEdges) ? 1.0 : non_edge_select_alpha;
+  color.a = (selectEdges || (edge_flag & (EDGE_SELECTED | EDGE_ACTIVE)) != 0) ? 1.0 : 0.4;
   return color;
 }
 
 vec4 EDIT_MESH_edge_vertex_color(int vertex_flag)
 {
   vec4 color = colorWireEdit;
-  vec4 color_select = (selectEdges) ? colorEdgeSelect : colorFaceSelect;
-  color = (doEdges && (vertex_flag & (VERT_ACTIVE | VERT_SELECTED)) != 0) ? color_select : color;
-  color.a = (selectEdges) ? 1.0 : 0.4;
+  vec4 color_select = (selectEdges) ? colorEdgeSelect : mix(colorEdgeSelect, colorWireEdit, .45);
+
+  bool edge_selected = (vertex_flag & (VERT_ACTIVE | VERT_SELECTED)) != 0;
+  color = (edge_selected) ? color_select : color;
+
+  color.a = (selectEdges || edge_selected) ? 1.0 : 0.4;
   return color;
 }



More information about the Bf-blender-cvs mailing list