mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-11-02 20:52:20 -07:00
Draw grid lines using shader
This commit is contained in:
parent
a4aa134f25
commit
6658e1a9ae
4 changed files with 37 additions and 14 deletions
|
|
@ -14,6 +14,7 @@ vertex =
|
|||
}
|
||||
|
||||
fragment =
|
||||
uniform lowp vec4 u_plateColor;
|
||||
uniform lowp vec4 u_gridColor0;
|
||||
uniform lowp vec4 u_gridColor1;
|
||||
|
||||
|
|
@ -21,10 +22,19 @@ fragment =
|
|||
|
||||
void main()
|
||||
{
|
||||
if (mod(floor(v_uvs.x / 10.0) - floor(v_uvs.y / 10.0), 2.0) < 1.0)
|
||||
gl_FragColor = u_gridColor0;
|
||||
else
|
||||
gl_FragColor = u_gridColor1;
|
||||
vec2 coord = v_uvs.xy;
|
||||
|
||||
// Compute anti-aliased world-space minor grid lines
|
||||
vec2 minorGrid = abs(fract(coord - 0.5) - 0.5) / fwidth(coord);
|
||||
float minorLine = min(minorGrid.x, minorGrid.y);
|
||||
|
||||
vec4 minorGridColor = mix(u_plateColor, u_gridColor1, 1.0 - min(minorLine, 1.0));
|
||||
|
||||
// Compute anti-aliased world-space major grid lines
|
||||
vec2 majorGrid = abs(fract(coord / 10 - 0.5) - 0.5) / fwidth(coord / 10);
|
||||
float majorLine = min(majorGrid.x, majorGrid.y);
|
||||
|
||||
frag_color = mix(minorGridColor, u_gridColor0, 1.0 - min(majorLine, 1.0));
|
||||
}
|
||||
|
||||
vertex41core =
|
||||
|
|
@ -44,23 +54,37 @@ vertex41core =
|
|||
|
||||
fragment41core =
|
||||
#version 410
|
||||
uniform lowp vec4 u_plateColor;
|
||||
uniform lowp vec4 u_gridColor0;
|
||||
uniform lowp vec4 u_gridColor1;
|
||||
uniform lowp float u_z_bias; //Bias in the depth buffer for rendering this object (to make an object be rendered in front of or behind other objects).
|
||||
|
||||
in lowp vec2 v_uvs;
|
||||
out vec4 frag_color;
|
||||
|
||||
void main()
|
||||
{
|
||||
if (mod(floor(v_uvs.x / 10.0) - floor(v_uvs.y / 10.0), 2.0) < 1.0)
|
||||
frag_color = u_gridColor0;
|
||||
else
|
||||
frag_color = u_gridColor1;
|
||||
vec2 coord = v_uvs.xy;
|
||||
|
||||
// Compute anti-aliased world-space minor grid lines
|
||||
vec2 minorGrid = abs(fract(coord - 0.5) - 0.5) / fwidth(coord);
|
||||
float minorLine = min(minorGrid.x, minorGrid.y);
|
||||
|
||||
vec4 minorGridColor = mix(u_plateColor, u_gridColor1, 1.0 - min(minorLine, 1.0));
|
||||
|
||||
// Compute anti-aliased world-space major grid lines
|
||||
vec2 majorGrid = abs(fract(coord / 10 - 0.5) - 0.5) / fwidth(coord / 10);
|
||||
float majorLine = min(majorGrid.x, majorGrid.y);
|
||||
|
||||
frag_color = mix(minorGridColor, u_gridColor0, 1.0 - min(majorLine, 1.0));
|
||||
gl_FragDepth = gl_FragCoord.z + u_z_bias;
|
||||
}
|
||||
|
||||
[defaults]
|
||||
u_plateColor = [1.0, 1.0, 1.0, 1.0]
|
||||
u_gridColor0 = [0.96, 0.96, 0.96, 1.0]
|
||||
u_gridColor1 = [0.8, 0.8, 0.8, 1.0]
|
||||
u_z_bias = 0.0
|
||||
|
||||
[bindings]
|
||||
u_modelViewProjectionMatrix = model_view_projection_matrix
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue