From 10739ba980b81bdda6a83b9142f6ae6991411dce Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Tue, 6 Oct 2020 10:11:41 +0200 Subject: [PATCH 1/2] Fix the compatibility shader for shader_with_light --- .../compatibility_shaders/shader_with_light.frag | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Polyhedron/demo/Polyhedron/resources/compatibility_shaders/shader_with_light.frag b/Polyhedron/demo/Polyhedron/resources/compatibility_shaders/shader_with_light.frag index d7e0564ef4f..b05e589a187 100644 --- a/Polyhedron/demo/Polyhedron/resources/compatibility_shaders/shader_with_light.frag +++ b/Polyhedron/demo/Polyhedron/resources/compatibility_shaders/shader_with_light.frag @@ -23,9 +23,9 @@ uniform bool back_front_shading; uniform sampler2D sampler; uniform highp float alpha; -highp float depth(float z) +highp float depth(highp float z) { - return (2 * near) / (far + near - z * (far - near)); + return (2.0 * near) / (far + near - z * (far - near)); } void main(void) { @@ -53,7 +53,7 @@ void main(void) { highp vec4 my_color = highp vec4(color.xyz, 1.0); if(fN == vec3(0.0,0.0,0.0)) { - out_color = my_color; + gl_FragColor = my_color; return; } N = normalize(fN); @@ -61,16 +61,16 @@ void main(void) { V = normalize(V); highp vec3 R = reflect(-L, N); highp vec4 diffuse; - float dot_prod = dot(N,L); - + highp float dot_prod = dot(N,L); + if(back_front_shading) { - if (dot_prod > 0) + if (dot_prod > 0.0) my_color = front_color; else my_color = back_color; } - + if(is_two_side == 1) diffuse = abs(dot(N,L)) * light_diff * color; else From e4362c88a7a62f8af7e28aabbd6f58c1f2dc4065 Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Tue, 6 Oct 2020 10:20:05 +0200 Subject: [PATCH 2/2] more possible errors --- .../compatibility_shaders/shader_c3t3.frag | 42 +++++++++---------- .../compatibility_shaders/shader_c3t3.vert | 42 +++++++++---------- .../shader_c3t3_edges.frag | 10 ++--- 3 files changed, 47 insertions(+), 47 deletions(-) diff --git a/Polyhedron/demo/Polyhedron/resources/compatibility_shaders/shader_c3t3.frag b/Polyhedron/demo/Polyhedron/resources/compatibility_shaders/shader_c3t3.frag index 4a2f5cd9798..26eb7b16578 100644 --- a/Polyhedron/demo/Polyhedron/resources/compatibility_shaders/shader_c3t3.frag +++ b/Polyhedron/demo/Polyhedron/resources/compatibility_shaders/shader_c3t3.frag @@ -1,13 +1,13 @@ varying highp vec4 color; -varying highp vec4 fP; -varying highp vec3 fN; -uniform highp vec4 light_pos; -uniform highp vec4 light_diff; -uniform highp vec4 light_spec; -uniform highp vec4 light_amb; +varying highp vec4 fP; +varying highp vec3 fN; +uniform highp vec4 light_pos; +uniform highp vec4 light_diff; +uniform highp vec4 light_spec; +uniform highp vec4 light_amb; uniform highp float spec_power ; -uniform int is_two_side; +uniform int is_two_side; uniform bool is_selected; uniform highp float near; uniform highp float far; @@ -32,29 +32,29 @@ void main(void) { gl_FragColor = vec4(d,d,d,1.0); else { - if(color.w<0) + if(color.w<0.) { highp vec4 my_color = vec4(color.xyz, 1.); - highp vec3 L = light_pos.xyz - fP.xyz; - highp vec3 V = -fP.xyz; - highp vec3 N; + highp vec3 L = light_pos.xyz - fP.xyz; + highp vec3 V = -fP.xyz; + highp vec3 N; if(fN == vec3(0.0,0.0,0.0)) { gl_FragColor = my_color; return; } - else - N = normalize(fN); - L = normalize(L); - V = normalize(V); - highp vec3 R = reflect(-L, N); + else + N = normalize(fN); + L = normalize(L); + V = normalize(V); + highp vec3 R = reflect(-L, N); highp vec4 diffuse; - if(is_two_side == 1) - diffuse = abs(dot(N,L)) * light_diff * my_color; - else - diffuse = max(dot(N,L), 0.0) * light_diff * my_color; - highp vec4 specular = pow(max(dot(R,V), 0.0), spec_power) * light_spec; + if(is_two_side == 1) + diffuse = abs(dot(N,L)) * light_diff * my_color; + else + diffuse = max(dot(N,L), 0.0) * light_diff * my_color; + highp vec4 specular = pow(max(dot(R,V), 0.0), spec_power) * light_spec; highp vec4 ret_color = vec4((my_color*light_amb).xyz + diffuse.xyz + specular.xyz,1); if(is_selected) gl_FragColor = vec4(ret_color.r+70.0/255.0, ret_color.g+70.0/255.0, ret_color.b+70.0/255.0, alpha); diff --git a/Polyhedron/demo/Polyhedron/resources/compatibility_shaders/shader_c3t3.vert b/Polyhedron/demo/Polyhedron/resources/compatibility_shaders/shader_c3t3.vert index a1578e13062..d2c861cfd7a 100644 --- a/Polyhedron/demo/Polyhedron/resources/compatibility_shaders/shader_c3t3.vert +++ b/Polyhedron/demo/Polyhedron/resources/compatibility_shaders/shader_c3t3.vert @@ -1,4 +1,4 @@ -//#version 100 +//#version 100 attribute highp vec4 vertex; attribute highp vec3 normals; attribute highp vec3 colors; @@ -7,33 +7,33 @@ uniform highp mat4 mvp_matrix; uniform highp mat4 mv_matrix; uniform highp vec4 cutplane; uniform highp float shrink_factor; -varying highp vec4 fP; -varying highp vec3 fN; -varying highp vec4 color; +varying highp vec4 fP; +varying highp vec3 fN; +varying highp vec4 color; uniform highp float point_size; void main(void) { gl_PointSize = point_size; color = vec4(colors, vertex.x * cutplane.x + vertex.y * cutplane.y + vertex.z * cutplane.z + cutplane.w); - fP = mv_matrix * vertex; + fP = mv_matrix * vertex; - mat3 mv_matrix_3; - mv_matrix_3[0] = mv_matrix[0].xyz; - mv_matrix_3[1] = mv_matrix[1].xyz; - mv_matrix_3[2] = mv_matrix[2].xyz; - fN = mv_matrix_3* normals; - - highp mat4 transOB = mat4(1, 0, 0, 0, // first column - 0, 1, 0, 0, // second column - 0, 0, 1, 0, // third column + mat3 mv_matrix_3; + mv_matrix_3[0] = mv_matrix[0].xyz; + mv_matrix_3[1] = mv_matrix[1].xyz; + mv_matrix_3[2] = mv_matrix[2].xyz; + fN = mv_matrix_3* normals; + + highp mat4 transOB = mat4(1., 0., 0., 0., // first column + 0., 1., 0., 0., // second column + 0., 0., 1., 0., // third column center.x, center.y, center.z, 1); // fourth column - highp mat4 transBO = mat4(1, 0, 0, 0, // first column - 0, 1, 0, 0, // second column - 0, 0, 1, 0, // third column + highp mat4 transBO = mat4(1., 0., 0., 0., // first column + 0., 1., 0., 0., // second column + 0., 0., 1., 0., // third column -center.x, -center.y, -center.z, 1); // fourth column - highp mat4 scaling = mat4(shrink_factor, 0, 0, 0, - 0, shrink_factor, 0, 0, - 0, 0, shrink_factor, 0, - 0, 0, 0, 1); + highp mat4 scaling = mat4(shrink_factor, 0., 0., 0., + 0., shrink_factor, 0., 0., + 0., 0., shrink_factor, 0., + 0., 0., 0., 1.); gl_Position = mvp_matrix *transOB * scaling * transBO * vertex; } diff --git a/Polyhedron/demo/Polyhedron/resources/compatibility_shaders/shader_c3t3_edges.frag b/Polyhedron/demo/Polyhedron/resources/compatibility_shaders/shader_c3t3_edges.frag index 24fa8d08dc5..5bd8af81496 100644 --- a/Polyhedron/demo/Polyhedron/resources/compatibility_shaders/shader_c3t3_edges.frag +++ b/Polyhedron/demo/Polyhedron/resources/compatibility_shaders/shader_c3t3_edges.frag @@ -1,9 +1,9 @@ varying highp vec4 color; -void main(void) -{ - if(color.w<0) - gl_FragColor = vec4(0,0,0,1.0); +void main(void) +{ + if(color.w<0.) + gl_FragColor = vec4(0.,0.,0.,1.0); else discard; -} +}