[Bf-blender-cvs] [e2cc428686d] soc-2019-npr: LANPR: Fixed GPU mode bug: contour is always on.

YimingWu noreply at git.blender.org
Fri Jul 5 04:45:10 CEST 2019


Commit: e2cc428686df5589eecf944ee59cf8e73c99764c
Author: YimingWu
Date:   Fri Jul 5 10:44:56 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rBe2cc428686df5589eecf944ee59cf8e73c99764c

LANPR: Fixed GPU mode
bug: contour is always on.

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

M	release/scripts/startup/bl_ui/properties_render.py
M	source/blender/draw/engines/lanpr/lanpr_engine.c
M	source/blender/draw/engines/lanpr/shaders/lanpr_dpix_project_clip_frag.glsl

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

diff --git a/release/scripts/startup/bl_ui/properties_render.py b/release/scripts/startup/bl_ui/properties_render.py
index a64908c2417..fd40b549663 100644
--- a/release/scripts/startup/bl_ui/properties_render.py
+++ b/release/scripts/startup/bl_ui/properties_render.py
@@ -748,7 +748,7 @@ class RENDER_PT_lanpr(RenderButtonsPanel, Panel):
             return;
 
         if mode == "DPIX" and lanpr.shader_error:
-            layout.label(text="DPIX transfor shader compile error!")
+            layout.label(text="DPIX transform shader compile error!")
             return;
 
         if mode == "SOFTWARE" or mode == "DPIX":
diff --git a/source/blender/draw/engines/lanpr/lanpr_engine.c b/source/blender/draw/engines/lanpr/lanpr_engine.c
index 564915ecce1..3df81b6b362 100644
--- a/source/blender/draw/engines/lanpr/lanpr_engine.c
+++ b/source/blender/draw/engines/lanpr/lanpr_engine.c
@@ -292,6 +292,8 @@ static void lanpr_cache_init(void *vedata)
                               "crease_fade_threshold",
                               &lanpr->crease_fade_threshold,
                               1);
+    DRW_shgroup_uniform_int(
+        stl->g_data->dpix_transform_shgrp, "enable_contour", &ll->enable_contour, 1);
     DRW_shgroup_uniform_int(
         stl->g_data->dpix_transform_shgrp, "enable_crease", &ll->enable_crease, 1);
     DRW_shgroup_uniform_int(
diff --git a/source/blender/draw/engines/lanpr/shaders/lanpr_dpix_project_clip_frag.glsl b/source/blender/draw/engines/lanpr/shaders/lanpr_dpix_project_clip_frag.glsl
index 9015a908f4d..78f625c4a92 100644
--- a/source/blender/draw/engines/lanpr/shaders/lanpr_dpix_project_clip_frag.glsl
+++ b/source/blender/draw/engines/lanpr/shaders/lanpr_dpix_project_clip_frag.glsl
@@ -4,6 +4,7 @@ uniform mat4 ViewMatrixInverse;
 uniform mat4 ProjectionMatrix;
 uniform mat4 ProjectionMatrixInverse;
 
+uniform int enable_contour;
 uniform int enable_crease;
 uniform int enable_material;
 uniform int enable_edge_mark;
@@ -334,7 +335,8 @@ int testProfileEdge(ivec2 texcoord, vec3 world_position)
   float dot2 = dot(normalize(vec3(face_normal_0.xyz)), normalize(vec3(face_normal_1.xyz)));
 
   bool contour = (dot0 >= 0.0 && dot1 <= 0.0) || (dot0 <= 0.0 && dot1 >= 0.0);
-  is_crease = ((!contour) && ((dot2 < crease_threshold) || (dot2 < crease_fade_threshold))) ? 1 :
+
+  is_crease = (((enable_contour>0 && !contour)||enable_contour==0) && ((dot2 < crease_threshold) || (dot2 < crease_fade_threshold))) ? 1 :
                                                                                               0;
 
   crease_strength = (is_crease > 0 && dot2 > crease_threshold) ?
@@ -343,9 +345,9 @@ int testProfileEdge(ivec2 texcoord, vec3 world_position)
                         0;
   // use 0 to 0.5 to repesent the range, because 1 will represent another meaning
 
-  if (contour)
+  if (enable_contour>0 && contour)
     return 1;
-  else if (((enable_crease > 0) && (is_crease > 0)) ||
+  if (((enable_crease > 0) && (is_crease > 0)) ||
            ((enable_material > 0) && (edge_mask.r > 0)) ||
            ((enable_edge_mark > 0) && (edge_mask.g > 0)) ||
            ((enable_intersection > 0) && (edge_mask.b > 0)) || false)



More information about the Bf-blender-cvs mailing list