Commit: bcc3003cb41c6992c5e321b8242b209ec082e7be
Author: Nick Wu
Date:   Tue Aug 28 18:23:58 2018 +0800
Branches: soc-2018-npr
https://developer.blender.org/rBbcc3003cb41c6992c5e321b8242b209ec082e7be

Fixed chained line type display control

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

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

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

diff --git a/source/blender/draw/engines/lanpr/lanpr_ops.c 
b/source/blender/draw/engines/lanpr/lanpr_ops.c
index 68166cfeeaa..9aa05dd6730 100644
--- a/source/blender/draw/engines/lanpr/lanpr_ops.c
+++ b/source/blender/draw/engines/lanpr/lanpr_ops.c
@@ -3140,6 +3140,11 @@ void lanpr_software_draw_scene(void *vedata, 
GPUFrameBuffer *dfb, int is_render)
                                DRW_shgroup_uniform_float(rb->ChainShgrp, 
"thickness_material", &ll->thickness_material, 1);
                                DRW_shgroup_uniform_float(rb->ChainShgrp, 
"thickness_edge_mark", &ll->thickness_edge_mark, 1);
                                DRW_shgroup_uniform_float(rb->ChainShgrp, 
"thickness_intersection", &ll->thickness_intersection, 1);
+                               DRW_shgroup_uniform_int(rb->ChainShgrp, 
"enable_contour", &ll->enable_contour, 1);
+                               DRW_shgroup_uniform_int(rb->ChainShgrp, 
"enable_crease", &ll->enable_crease, 1);
+                               DRW_shgroup_uniform_int(rb->ChainShgrp, 
"enable_material", &ll->enable_material_seperate, 1);
+                               DRW_shgroup_uniform_int(rb->ChainShgrp, 
"enable_edge_mark", &ll->enable_edge_mark, 1);
+                               DRW_shgroup_uniform_int(rb->ChainShgrp, 
"enable_intersection", &ll->enable_intersection, 1);
 
                                DRW_shgroup_uniform_int(rb->ChainShgrp, 
"normal_mode", &ll->normal_mode, 1);
                                DRW_shgroup_uniform_int(rb->ChainShgrp, 
"normal_effect_inverse", &ll->normal_effect_inverse, 1);
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 19272241cdd..65f9b3bf1c8 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
@@ -20,6 +20,12 @@ uniform float thickness_material;
 uniform float thickness_edge_mark;
 uniform float thickness_intersection;
 
+uniform int enable_contour;
+uniform int enable_crease;
+uniform int enable_material;
+uniform int enable_edge_mark;
+uniform int enable_intersection;
+
 uniform int occlusion_level_begin;
 uniform int occlusion_level_end;
 
@@ -170,11 +176,11 @@ void decide_line_style(int component_id){
                th = factor_to_thickness(factor);
        }
 
-       if (component_id == 0) { out_color = color;              use_thickness 
= th;                          return; }
-       if (component_id == 1) { out_color = crease_color;       use_thickness 
= th * thickness_crease;       return; }
-       if (component_id == 2) { out_color = material_color;     use_thickness 
= th * thickness_material;     return; }
-       if (component_id == 3) { out_color = edge_mark_color;    use_thickness 
= th * thickness_edge_mark;    return; }
-       if (component_id == 4) { out_color = intersection_color; use_thickness 
= th * thickness_intersection; return; }
+       if (component_id == 0) { out_color = color;              use_thickness 
= th * enable_contour;                               return; }
+       if (component_id == 1) { out_color = crease_color;       use_thickness 
= th * thickness_crease * enable_crease;             return; }
+       if (component_id == 2) { out_color = material_color;     use_thickness 
= th * thickness_material * enable_material;         return; }
+       if (component_id == 3) { out_color = edge_mark_color;    use_thickness 
= th * thickness_edge_mark * enable_edge_mark;       return; }
+       if (component_id == 4) { out_color = intersection_color; use_thickness 
= th * thickness_intersection * enable_intersection; return; }
 }
 
 void main() {

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to