Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans Goudey <h.goudey@me.com>2021-11-09 19:12:05 +0300
committerHans Goudey <h.goudey@me.com>2021-11-09 19:12:05 +0300
commitaa13c4b386b1311162e74378ad864a51b2f1b7af (patch)
treebbfe7c9a7aa9e7e5b996edd828ed76d1f74771a1 /source/blender/draw/engines/overlay
parent570331ca96a5e7a30c8896a07aad1960d5bd706e (diff)
Viewport: Remove different outline color for instances
With instancing becoming more common with geometry nodes, instances are less of a separate thing and more of an essential part of evaluated data. Displaying them with a separate outline, while helpful in some cases, is not worth the lack of visibility or confusion about selected/active status. Information about the performance of the scene due to instancing is always available with the statistics like vertex count, etc. The problems were compounded by the fact that the instancing system is used to output geometry components that don't correspond to the object's original type. So this patch also fixes that problem. Fixes T92079, T81010 Ref T91310 Differential Revision: https://developer.blender.org/D13133
Diffstat (limited to 'source/blender/draw/engines/overlay')
-rw-r--r--source/blender/draw/engines/overlay/overlay_extra.c5
-rw-r--r--source/blender/draw/engines/overlay/shaders/extra_lightprobe_grid_vert.glsl3
-rw-r--r--source/blender/draw/engines/overlay/shaders/outline_detect_frag.glsl3
-rw-r--r--source/blender/draw/engines/overlay/shaders/outline_prepass_vert.glsl10
-rw-r--r--source/blender/draw/engines/overlay/shaders/wireframe_vert.glsl19
5 files changed, 3 insertions, 37 deletions
diff --git a/source/blender/draw/engines/overlay/overlay_extra.c b/source/blender/draw/engines/overlay/overlay_extra.c
index 98db7136398..a2362cd8850 100644
--- a/source/blender/draw/engines/overlay/overlay_extra.c
+++ b/source/blender/draw/engines/overlay/overlay_extra.c
@@ -762,10 +762,7 @@ void OVERLAY_lightprobe_cache_populate(OVERLAY_Data *vedata, Object *ob)
instdata.mat[1][3] = prb->grid_resolution_y;
instdata.mat[2][3] = prb->grid_resolution_z;
/* Put theme id in matrix. */
- if (UNLIKELY(ob->base_flag & BASE_FROM_DUPLI)) {
- instdata.mat[3][3] = 0.0;
- }
- else if (theme_id == TH_ACTIVE) {
+ if (theme_id == TH_ACTIVE) {
instdata.mat[3][3] = 1.0;
}
else /* TH_SELECT */ {
diff --git a/source/blender/draw/engines/overlay/shaders/extra_lightprobe_grid_vert.glsl b/source/blender/draw/engines/overlay/shaders/extra_lightprobe_grid_vert.glsl
index 3746cbcf90b..1f3a23324bb 100644
--- a/source/blender/draw/engines/overlay/shaders/extra_lightprobe_grid_vert.glsl
+++ b/source/blender/draw/engines/overlay/shaders/extra_lightprobe_grid_vert.glsl
@@ -10,9 +10,6 @@ vec4 color_from_id(float color_id)
if (isTransform) {
return colorTransform;
}
- else if (color_id == 0.0) {
- return colorDupliSelect;
- }
else if (color_id == 1.0) {
return colorActive;
}
diff --git a/source/blender/draw/engines/overlay/shaders/outline_detect_frag.glsl b/source/blender/draw/engines/overlay/shaders/outline_detect_frag.glsl
index df10f3f7ae2..0e4757f8ea8 100644
--- a/source/blender/draw/engines/overlay/shaders/outline_detect_frag.glsl
+++ b/source/blender/draw/engines/overlay/shaders/outline_detect_frag.glsl
@@ -241,9 +241,6 @@ void main()
else if (color_id == 1u) {
fragColor = colorSelect;
}
- else if (color_id == 2u) {
- fragColor = colorDupliSelect;
- }
else if (color_id == 3u) {
fragColor = colorActive;
}
diff --git a/source/blender/draw/engines/overlay/shaders/outline_prepass_vert.glsl b/source/blender/draw/engines/overlay/shaders/outline_prepass_vert.glsl
index 582a7c6cae2..701760dac18 100644
--- a/source/blender/draw/engines/overlay/shaders/outline_prepass_vert.glsl
+++ b/source/blender/draw/engines/overlay/shaders/outline_prepass_vert.glsl
@@ -17,18 +17,8 @@ flat out uint objectId;
uint outline_colorid_get(void)
{
int flag = int(abs(ObjectInfo.w));
- bool is_from_dupli = (flag & DRW_BASE_FROM_DUPLI) != 0;
bool is_active = (flag & DRW_BASE_ACTIVE) != 0;
- if (is_from_dupli) {
- if (isTransform) {
- return 0u; /* colorTransform */
- }
- else {
- return 2u; /* colorDupliSelect */
- }
- }
-
if (isTransform) {
return 0u; /* colorTransform */
}
diff --git a/source/blender/draw/engines/overlay/shaders/wireframe_vert.glsl b/source/blender/draw/engines/overlay/shaders/wireframe_vert.glsl
index c083fdacbbe..060b7a957c1 100644
--- a/source/blender/draw/engines/overlay/shaders/wireframe_vert.glsl
+++ b/source/blender/draw/engines/overlay/shaders/wireframe_vert.glsl
@@ -28,27 +28,12 @@ void wire_color_get(out vec3 rim_col, out vec3 wire_col)
{
int flag = int(abs(ObjectInfo.w));
bool is_selected = (flag & DRW_BASE_SELECTED) != 0;
- bool is_from_dupli = (flag & DRW_BASE_FROM_DUPLI) != 0;
bool is_from_set = (flag & DRW_BASE_FROM_SET) != 0;
bool is_active = (flag & DRW_BASE_ACTIVE) != 0;
if (is_from_set) {
- rim_col = colorDupli.rgb;
- wire_col = colorDupli.rgb;
- }
- else if (is_from_dupli) {
- if (is_selected) {
- if (isTransform) {
- rim_col = colorTransform.rgb;
- }
- else {
- rim_col = colorDupliSelect.rgb;
- }
- }
- else {
- rim_col = colorDupli.rgb;
- }
- wire_col = colorDupli.rgb;
+ rim_col = colorWire.rgb;
+ wire_col = colorWire.rgb;
}
else if (is_selected && useColoring) {
if (isTransform) {