Search across packages, versions, files, declarations, and comments. Use multiple terms to narrow results (AND), and add @vertex, @fragment, or @compute to filter by shader stage.
1#import bevy_enoki::particle_vertex_out::{ VertexOutput }
3@group(1) @binding(0) var texture: texture_2d<f32>;
4@group(1) @binding(1) var texture_sampler: sampler;
7@fragment
8fn fragment(in: VertexOutput) -> @location(0) vec4<f32> {
9 var out = in.color;
11 let speed = 5.0;
13 let r_uv = ( in.uv + vec2(0.1,0.) * in.lifetime_frac * speed ) % 1.;
14 let b_uv = ( in.uv + vec2(0.5,0.1) * in.lifetime_frac * speed) % 1.;
15 let g_uv = ( in.uv + vec2(0.2,-0.1) * in.lifetime_frac * speed) % 1.;
17 let r = textureSample(texture, texture_sampler, r_uv).r * 2.;
18 let b = textureSample(texture, texture_sampler, b_uv).b * 2.;
19 let g = textureSample(texture, texture_sampler, g_uv).g * 2.;
21 let dist_center = distance(in.uv, vec2(0.5));
22 let energy = (r + b + g) / 3.;
24 let fade_out = 1. - dist_center * 2.;
25 out.a =
26 smoothstep(dist_center, dist_center + 0.4, 0.4)
27 * smoothstep(energy,energy + 0.2,.3)
28 * fade_out;
30 return out;
Contents