[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