[Bf-blender-cvs] [181b44d76a0] soc-2019-npr: LANPR: Fixing chained line normal value errors.

YimingWu noreply at git.blender.org
Mon Aug 5 05:22:40 CEST 2019


Commit: 181b44d76a0251a18b497616646230b00e3b4b95
Author: YimingWu
Date:   Mon Aug 5 11:22:22 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB181b44d76a0251a18b497616646230b00e3b4b95

LANPR: Fixing chained line normal value errors.

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

M	source/blender/draw/engines/lanpr/shaders/lanpr_software_chain_geom.glsl
M	source/blender/editors/lanpr/lanpr_chain.c

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

diff --git a/source/blender/draw/engines/lanpr/shaders/lanpr_software_chain_geom.glsl b/source/blender/draw/engines/lanpr/shaders/lanpr_software_chain_geom.glsl
index 004028a94cc..6db3e4fa5c9 100644
--- a/source/blender/draw/engines/lanpr/shaders/lanpr_software_chain_geom.glsl
+++ b/source/blender/draw/engines/lanpr/shaders/lanpr_software_chain_geom.glsl
@@ -200,7 +200,7 @@ void decide_line_style(int component_id)
 
   if (component_id == 0) {
     out_color = contour_color;
-    use_thickness = th * enable_contour;
+    use_thickness = th * thickness_contour * enable_contour;
     return;
   }
   if (component_id == 1) {
diff --git a/source/blender/editors/lanpr/lanpr_chain.c b/source/blender/editors/lanpr/lanpr_chain.c
index 1632a4022e6..75aa19dcd95 100644
--- a/source/blender/editors/lanpr/lanpr_chain.c
+++ b/source/blender/editors/lanpr/lanpr_chain.c
@@ -240,18 +240,18 @@ void ED_lanpr_NO_THREAD_chain_feature_lines(LANPR_RenderBuffer *rb)
     while (ba && (new_rl = lanpr_get_connected_render_line(ba, new_rv, &new_rv, rl->flags))) {
       new_rl->flags |= LANPR_EDGE_FLAG_CHAIN_PICKED;
 
-      N[0] = N[1] = N[2] = 0;
-      if (new_rl->tl) {
-        N[0] += new_rl->tl->gn[0];
-        N[1] += new_rl->tl->gn[1];
-        N[2] += new_rl->tl->gn[2];
-      }
-      if (new_rl->tr) {
-        N[0] += new_rl->tr->gn[0];
-        N[1] += new_rl->tr->gn[1];
-        N[2] += new_rl->tr->gn[2];
-      }
-      if (rl->tl || rl->tr) {
+      if (new_rl->tl || new_rl->tr) {
+        zero_v3(N);
+        if (new_rl->tl) {
+          N[0] += new_rl->tl->gn[0];
+          N[1] += new_rl->tl->gn[1];
+          N[2] += new_rl->tl->gn[2];
+        }
+        if (new_rl->tr) {
+          N[0] += new_rl->tr->gn[0];
+          N[1] += new_rl->tr->gn[1];
+          N[2] += new_rl->tr->gn[2];
+        }
         normalize_v3(N);
       }
 
@@ -338,6 +338,21 @@ void ED_lanpr_NO_THREAD_chain_feature_lines(LANPR_RenderBuffer *rb)
     while (ba && (new_rl = lanpr_get_connected_render_line(ba, new_rv, &new_rv, rl->flags))) {
       new_rl->flags |= LANPR_EDGE_FLAG_CHAIN_PICKED;
 
+      if (new_rl->tl || new_rl->tr) {
+        zero_v3(N);
+        if (new_rl->tl) {
+          N[0] += new_rl->tl->gn[0];
+          N[1] += new_rl->tl->gn[1];
+          N[2] += new_rl->tl->gn[2];
+        }
+        if (new_rl->tr) {
+          N[0] += new_rl->tr->gn[0];
+          N[1] += new_rl->tr->gn[1];
+          N[2] += new_rl->tr->gn[2];
+        }
+        normalize_v3(N);
+      }
+
       /*  fix leading vertex type */
       rlci = rlc->chain.last;
       rlci->line_type = new_rl->flags & LANPR_EDGE_FLAG_ALL_TYPE;



More information about the Bf-blender-cvs mailing list