[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