[Bf-blender-cvs] [4719b8f5613] soc-2018-npr: Fix occlusion error

Nick Wu noreply at git.blender.org
Thu Jul 19 17:45:20 CEST 2018


Commit: 4719b8f561357d91b33a29f38a8d2a78048cd99b
Author: Nick Wu
Date:   Thu Jul 19 13:51:01 2018 +0800
Branches: soc-2018-npr
https://developer.blender.org/rB4719b8f561357d91b33a29f38a8d2a78048cd99b

Fix occlusion error

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

M	source/blender/draw/engines/lanpr/lanpr_ops.c

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

diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c b/source/blender/draw/engines/lanpr/lanpr_ops.c
index 653b41205b2..6c92a610304 100644
--- a/source/blender/draw/engines/lanpr/lanpr_ops.c
+++ b/source/blender/draw/engines/lanpr/lanpr_ops.c
@@ -587,6 +587,7 @@ void lanpr_CutLineIntegrated(LANPR_RenderBuffer *rb, LANPR_RenderLine *rl, real
 	LANPR_RenderLineSegment *rls = rl->Segments.pFirst, *irls;
 	LANPR_RenderLineSegment *BeginSegment = 0, *EndSegment = 0;
 	LANPR_RenderLineSegment *ns = 0, *ns2 = 0;
+	int untouched=0;
 
 	if (TNS_DOUBLE_CLOSE_ENOUGH(Begin, End)) return;
 
@@ -628,6 +629,7 @@ void lanpr_CutLineIntegrated(LANPR_RenderBuffer *rb, LANPR_RenderLine *rl, real
 		if (!rls->Item.pNext && TNS_DOUBLE_CLOSE_ENOUGH(1, End)) {
 			EndSegment = rls;
 			ns2 = EndSegment;
+			untouched = 1;
 			break;
 		}elif (rls->at > End) {
 			EndSegment = rls;
@@ -661,7 +663,8 @@ void lanpr_CutLineIntegrated(LANPR_RenderBuffer *rb, LANPR_RenderLine *rl, real
 	}
 
 	ns->at = Begin;
-	if(!TNS_DOUBLE_CLOSE_ENOUGH(1, End)) ns2->at = End;
+	if(!untouched) ns2->at = End;
+	else ns2 = ns2->Item.pNext;
 
 	for (rls = ns; rls && rls != ns2; rls = rls->Item.pNext) {
 		rls->OccludeLevel++;



More information about the Bf-blender-cvs mailing list