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:
authorClément Foucault <foucault.clem@gmail.com>2018-06-07 17:55:41 +0300
committerClément Foucault <foucault.clem@gmail.com>2018-06-07 19:01:36 +0300
commitf9ca750bdf5e071eb240b55ee1e701e04dd7423c (patch)
tree873329d9ea6a02ef9de965848374329de89a8879 /source/blender/draw/modes/overlay_mode.c
parent38232871791e88eb8294441c013171113cb61012 (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.c11
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) {