
Here is a demo that renders a simple 2D grid in a GLSL shader. This demo should run on any OpenGL 2.1 capable platform (Windows, Linux, macOS and Raspberry Pi).
The demo is also available in the full code sample pack in the misc/grid-2d/ folder.
The vertex shader:
#version 120
varying vec4 v_uv;
void main()
{
gl_Position = gl_Vertex;
v_uv = gl_MultiTexCoord0;
}
The fragment shader:
#version 120
varying vec4 v_uv;
uniform vec4 params;
// adapted from https://thebookofshaders.com/edit.php#10/ikeda-simple-grid.frag
float grid(vec2 st, float res)
{
vec2 grid = fract(st*res);
return (step(res,grid.x) * step(res,grid.y));
}
void main()
{
vec2 grid_uv = v_uv.xy * params.x; // scale
float x = grid(grid_uv, params.y); // resolution
gl_FragColor.rgb = vec3(0.5) * x;
gl_FragColor.a = 1.0;
}
