// GPU procedural noise texture generator. // Uses compute shader for parallel texture generation. #include "math/noise" struct NoiseParams { width: u32, height: u32, seed: f32, frequency: f32, } @group(0) @binding(0) var output_tex: texture_storage_2d; @group(0) @binding(1) var params: NoiseParams; @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 uv = vec2(f32(id.x) / f32(params.width), f32(id.y) / f32(params.height)); let p = uv * params.frequency + params.seed; let noise = noise_2d(p); textureStore(output_tex, id.xy, vec4(noise, noise, noise, 1.0)); }