// GPU procedural grid pattern generator. // Simple grid lines with configurable spacing and thickness. struct GridParams { width: u32, height: u32, grid_size: u32, thickness: u32, } @group(0) @binding(0) var output_tex: texture_storage_2d; @group(0) @binding(1) var params: GridParams; @compute @workgroup_size(8, 8, 1) fn main(@builtin(global_invocation_id) id: vec3) { if (id.x >= params.width || id.y >= params.height) { return; } let on_line = (id.x % params.grid_size) < params.thickness || (id.y % params.grid_size) < params.thickness; let val = select(0.0, 1.0, on_line); textureStore(output_tex, id.xy, vec4(val, val, val, 1.0)); }