[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