[Bf-blender-cvs] [50da5bf2cbe] greasepencil-refactor: GPencil: Refactor: Remove per layer random color jitter in wireframe

Clément Foucault noreply at git.blender.org
Sun Jan 12 00:45:07 CET 2020


Commit: 50da5bf2cbe9246438e36577d288ffe37c02f99d
Author: Clément Foucault
Date:   Sun Jan 12 00:39:16 2020 +0100
Branches: greasepencil-refactor
https://developer.blender.org/rB50da5bf2cbe9246438e36577d288ffe37c02f99d

GPencil: Refactor: Remove per layer random color jitter in wireframe

This is barely noticeable and makes it more confusing than anything in the
code. It's also faster and follow solid mode more closely.

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

M	source/blender/draw/engines/overlay/shaders/wireframe_vert.glsl
M	source/blender/draw/intern/draw_cache_impl_gpencil.c

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

diff --git a/source/blender/draw/engines/overlay/shaders/wireframe_vert.glsl b/source/blender/draw/engines/overlay/shaders/wireframe_vert.glsl
index 422d3cd1cf7..9a6476ceae9 100644
--- a/source/blender/draw/engines/overlay/shaders/wireframe_vert.glsl
+++ b/source/blender/draw/engines/overlay/shaders/wireframe_vert.glsl
@@ -9,8 +9,6 @@ in vec3 pos;
 in vec3 nor;
 in float wd; /* wiredata */
 
-in float layer_rand; /* gpencil only */
-
 flat out vec2 edgeStart;
 
 #ifndef SELECT_EDGES
@@ -83,7 +81,7 @@ void wire_object_color_get(out vec3 rim_col, out vec3 wire_col)
     rim_col = wire_col = ObjectColor.rgb * 0.5;
   }
   else {
-    float hue = fract(ObjectInfo.z + layer_rand);
+    float hue = ObjectInfo.z;
     vec3 hsv = vec3(hue, 0.75, 0.8);
     rim_col = wire_col = hsv_to_rgb(hsv);
   }
diff --git a/source/blender/draw/intern/draw_cache_impl_gpencil.c b/source/blender/draw/intern/draw_cache_impl_gpencil.c
index 6ca49250eff..4f0b5133d84 100644
--- a/source/blender/draw/intern/draw_cache_impl_gpencil.c
+++ b/source/blender/draw/intern/draw_cache_impl_gpencil.c
@@ -240,20 +240,6 @@ static GPUVertFormat *gpencil_color_format(void)
   return &format;
 }
 
-/* MUST match the format below. */
-typedef struct gpExtraDataVert {
-  float layer_rand;
-} gpExtraDataVert;
-
-static GPUVertFormat *gpencil_extra_data_format(void)
-{
-  static GPUVertFormat format = {0};
-  if (format.attr_len == 0) {
-    GPU_vertformat_attr_add(&format, "layer_rand", GPU_COMP_F32, 1, GPU_FETCH_FLOAT);
-  }
-  return &format;
-}
-
 /** \} */
 
 /* -------------------------------------------------------------------- */
@@ -262,16 +248,11 @@ static GPUVertFormat *gpencil_extra_data_format(void)
 
 typedef struct gpIterData {
   bGPdata *gpd;
-  union {
-    gpStrokeVert *verts;
-    gpExtraDataVert *verts_extra;
-  };
+  gpStrokeVert *verts;
   gpColorVert *cols;
   GPUIndexBufBuilder ibo;
   int vert_len;
   int tri_len;
-  int layer_id;
-  float layer_rand;
 } gpIterData;
 
 static GPUVertBuf *gpencil_dummy_buffer_get(void)
@@ -451,16 +432,6 @@ GPUBatch *DRW_cache_gpencil_fills_get(Object *ob, int cfra)
   return cache->fill_batch;
 }
 
-static void gp_layer_index_cb(bGPDlayer *gpl,
-                              bGPDframe *UNUSED(gpf),
-                              bGPDstroke *UNUSED(gps),
-                              void *thunk)
-{
-  gpIterData *iter = (gpIterData *)thunk;
-  iter->layer_id++;
-  iter->layer_rand = BLI_hash_int_01(BLI_hash_string(gpl->info));
-}
-
 static void gp_lines_indices_cb(bGPDlayer *UNUSED(gpl),
                                 bGPDframe *UNUSED(gpf),
                                 bGPDstroke *gps,
@@ -473,7 +444,6 @@ static void gp_lines_indices_cb(bGPDlayer *UNUSED(gpl),
   int end = start + pts_len;
   for (int i = start; i < end; i++) {
     GPU_indexbuf_add_generic_vert(&iter->ibo, i);
-    iter->verts_extra[i].layer_rand = iter->layer_rand;
   }
   GPU_indexbuf_add_primitive_restart(&iter->ibo);
 }
@@ -491,28 +461,18 @@ GPUBatch *DRW_cache_gpencil_face_wireframe_get(Object *ob)
 
     gpIterData iter = {
         .gpd = ob->data,
-        .verts = NULL,
         .ibo = {0},
-        .layer_id = 0,
     };
 
-    /* Create VBO containing layer index. */
-    GPUVertFormat *format = gpencil_extra_data_format();
-    GPUVertBuf *vbo_layer = GPU_vertbuf_create_with_format(format);
-    GPU_vertbuf_data_alloc(vbo_layer, vbo->vertex_len);
-    iter.verts_extra = (gpExtraDataVert *)vbo_layer->data;
-
     GPU_indexbuf_init_ex(&iter.ibo, GPU_PRIM_LINE_STRIP, vbo->vertex_len, vbo->vertex_len);
 
     /* IMPORTANT: Keep in sync with gpencil_edit_batches_ensure() */
     bool do_onion = true;
-    BKE_gpencil_visible_stroke_iter(
-        ob, gp_layer_index_cb, gp_lines_indices_cb, &iter, do_onion, cfra);
+    BKE_gpencil_visible_stroke_iter(ob, NULL, gp_lines_indices_cb, &iter, do_onion, cfra);
 
     GPUIndexBuf *ibo = GPU_indexbuf_build(&iter.ibo);
 
     cache->lines_batch = GPU_batch_create_ex(GPU_PRIM_LINE_STRIP, vbo, ibo, GPU_BATCH_OWNS_INDEX);
-    GPU_batch_vertbuf_add_ex(cache->lines_batch, vbo_layer, true);
   }
   return cache->lines_batch;
 }



More information about the Bf-blender-cvs mailing list