diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2018-06-07 17:55:41 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2018-06-07 19:01:36 +0300 |
commit | f9ca750bdf5e071eb240b55ee1e701e04dd7423c (patch) | |
tree | 873329d9ea6a02ef9de965848374329de89a8879 /source/blender/draw/modes/overlay_mode.c | |
parent | 38232871791e88eb8294441c013171113cb61012 (diff) |
Wireframe: Change / Optimize the limited wireframe visibility option.
This make the limited wireframe not a performance problem anymore.
However, this does change the number of edges displayed as the threshold
is now computed per vertex instead of per edges.
For this reason we extended (internaly) the range of the slider so that the
users can hide more edge.
Diffstat (limited to 'source/blender/draw/modes/overlay_mode.c')
-rw-r--r-- | source/blender/draw/modes/overlay_mode.c | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/source/blender/draw/modes/overlay_mode.c b/source/blender/draw/modes/overlay_mode.c index 721f659f253..97403b14ac5 100644 --- a/source/blender/draw/modes/overlay_mode.c +++ b/source/blender/draw/modes/overlay_mode.c @@ -156,8 +156,8 @@ static void overlay_cache_init(void *vedata) * The range controls the falloff effect. If range was 0.0f we would get a hard cut (as in 2.7). * That said we are using a different algorithm so the results will always differ. */ - const float factor = 0.006f; - const float range = 0.0025f; + const float factor = 0.0045f; + const float range = 0.00125f; stl->g_data->wire_step_param[1] = (1.0f - factor) + stl->g_data->overlay.wireframe_threshold * factor; stl->g_data->wire_step_param[0] = stl->g_data->wire_step_param[1] + range; } @@ -186,12 +186,7 @@ static void overlay_cache_populate(void *vedata, Object *ob) if ((ob != draw_ctx->object_edit) && !BKE_object_is_in_editmode(ob)) { int tri_count; GPUTexture *verts = NULL, *faceids; - if (stl->g_data->overlay.wireframe_threshold == 1.0f) { - DRW_cache_object_face_wireframe_get(ob, &verts, &faceids, &tri_count); - } - else { - DRW_cache_object_face_wireframe_pretty_get(ob, &verts, &faceids, &tri_count); - } + DRW_cache_object_face_wireframe_get(ob, &verts, &faceids, &tri_count); if (verts) { float *rim_col = ts.colorWire; if ((ob->base_flag & BASE_SELECTED) != 0) { |