[Bf-blender-cvs] [85f6277e6cf] soc-2018-npr: Possibly fixed shader errors, but don't know exactly what caused it.

Nick Wu noreply at git.blender.org
Wed Sep 12 17:07:31 CEST 2018


Commit: 85f6277e6cf7760d422b3d3fe440a48e5e905783
Author: Nick Wu
Date:   Wed Sep 12 23:03:34 2018 +0800
Branches: soc-2018-npr
https://developer.blender.org/rB85f6277e6cf7760d422b3d3fe440a48e5e905783

Possibly fixed shader errors, but don't know exactly what caused it.

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

M	source/blender/draw/engines/lanpr/shaders/lanpr_dpix_preview_geom.glsl
M	source/blender/draw/engines/lanpr/shaders/lanpr_dpix_project_clip_frag.glsl

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

diff --git a/source/blender/draw/engines/lanpr/shaders/lanpr_dpix_preview_geom.glsl b/source/blender/draw/engines/lanpr/shaders/lanpr_dpix_preview_geom.glsl
index ea51655815c..a9820014817 100644
--- a/source/blender/draw/engines/lanpr/shaders/lanpr_dpix_preview_geom.glsl
+++ b/source/blender/draw/engines/lanpr/shaders/lanpr_dpix_preview_geom.glsl
@@ -31,11 +31,11 @@ uniform float line_thickness_material;
 uniform float line_thickness_edge_mark;
 uniform float line_thickness_intersection;
 
-float use_thickness = line_thickness;
+float use_thickness;
 
 out vec4 out_color;
 
-vec4 use_color = color;
+vec4 use_color;
 
 float get_linear_depth(float z){
 	float ze = 2.0 * z_near * z_far / (z_far + z_near - z * (z_far - z_near));
@@ -104,11 +104,13 @@ void main() {
 
 	int is_crease = 0;
 
-	if (p1.w>0)               { use_color = color;               use_thickness = line_thickness; } // contour override
-	else if (p2.w>0)          { use_color = crease_color;        use_thickness = line_thickness * line_thickness_crease; is_crease = 1; }
-	else if (edge_mask.g > 0) { use_color = edge_mark_color;     use_thickness = line_thickness * line_thickness_edge_mark; }
+	use_thickness = line_thickness;
+	use_color = color;
+
+	if (edge_mask.g > 0)      { use_color = edge_mark_color;     use_thickness = line_thickness * line_thickness_edge_mark; }
 	else if (edge_mask.r > 0) { use_color = material_color;      use_thickness = line_thickness * line_thickness_material;  }
 	else if (edge_mask.b > 0) { use_color = intersection_color;  use_thickness = line_thickness * line_thickness_intersection;  }
+	else if (p2.w != p1.w)    { use_color = crease_color;        use_thickness = line_thickness * line_thickness_crease; is_crease = 1; }
 
 	draw_line(p1, p2, is_crease);
 }
\ No newline at end of file
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 f5fff375e7d..093f17afae2 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
@@ -369,6 +369,7 @@ int testProfileEdge(ivec2 texcoord, vec3 world_position)
 	       ((enable_edge_mark > 0) && (edge_mask.g > 0)) ||
 	       ((enable_intersection > 0) && (edge_mask.b > 0)) ||
 	       false) return 2;
+	return 0;
 }
 
 void main(){
@@ -511,7 +512,7 @@ void main(){
 	//if(v0_clipped_pre_div == v1_clipped_pre_div)gl_FragData[0] =vec4(1);
 	//else gl_FragData[0] = vec4(v0_clipped_pre_div.xyz,1);
 
-	gl_FragData[0] = vec4(v0_clipped_pre_div.xyz, profile_on==1 ? 1 : 0);//contour has priority
+	gl_FragData[0] = vec4(v0_clipped_pre_div.xyz, 1);//contour has priority, modification cause trouble
 	gl_FragData[1] = vec4(v1_clipped_pre_div.xyz, is_crease > 0 ? crease_strength : 1);
 	//gl_FragData[2] = packOffsetTexel(num_samples, segment_screen_length,
 	//num_samples, segment_screen_length);



More information about the Bf-blender-cvs mailing list