3 forward_io::VertexOutput, 6#import bevy_render::maths::PI 8#ifdef TONEMAP_IN_SHADER 9#import bevy_core_pipeline::tonemapping::tone_mapping 14fn color_sweep(uv_input: vec2<f32>) -> vec3<f32> { 17 uv.y = uv.y * (1.0 + 1.0 / steps); 20 let h = PI * 2.0 * floor(1.0 + steps * uv.y) / steps; 21 let L = floor(uv.x * steps * ratio) / (steps * ratio) - 0.5; 23 var color = vec3(0.0); 25 color = cos(h + vec3(0.0, 1.0, 2.0) * PI * 2.0 / 3.0); 26 let maxRGB = max(color.r, max(color.g, color.b)); 27 let minRGB = min(color.r, min(color.g, color.b)); 28 color = exp(15.0 * L) * (color - minRGB) / (maxRGB - minRGB); 30 color = vec3(exp(15.0 * L)); 35fn hsv_to_srgb(c: vec3<f32>) -> vec3<f32> { 36 let K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0); 37 let p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www); 38 return c.z * mix(K.xxx, clamp(p - K.xxx, vec3(0.0), vec3(1.0)), c.y); 42fn continuous_hue(uv: vec2<f32>) -> vec3<f32> { 43 return hsv_to_srgb(vec3(uv.x, 1.0, 1.0)) * max(0.0, exp2(uv.y * 9.0) - 1.0); 49) -> @location(0) vec4<f32> { 54 out = color_sweep(vec2(uv.x, uv.y * 2.0)); 56 out = continuous_hue(vec2(uv.y * 2.0, uv.x)); 58 var color = vec4(out, 1.0); 59#ifdef TONEMAP_IN_SHADER 60 color = tone_mapping(color, mesh_view_bindings::view.color_grading);