[Bf-blender-cvs] [bcc3003cb41] soc-2018-npr: Fixed chained line type display control

Nick Wu noreply at git.blender.org
Tue Aug 28 12:24:16 CEST 2018


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() {



More information about the Bf-blender-cvs mailing list