From c1d50f0c4543df6e54658de0aa388ff5d681f1f2 Mon Sep 17 00:00:00 2001 From: Mark Date: Sat, 6 Jan 2024 16:00:40 -0800 Subject: [PATCH] Minor fixes --- crates/render/shaders/particle.wgsl | 36 ++++++++++++++--------------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/crates/render/shaders/particle.wgsl b/crates/render/shaders/particle.wgsl index b99e1c4..7b8c677 100644 --- a/crates/render/shaders/particle.wgsl +++ b/crates/render/shaders/particle.wgsl @@ -58,31 +58,31 @@ fn vertex_main( // Apply transformations let angle = instance.angle + age * instance.angvel; - let rotation = mat2x2( + + var scale: f32 = instance.size / global_data.camera_zoom.x; + var pos: vec2 = vec2( + vertex.position.x * scale * global_sprites[instance.sprite_index].aspect, + vertex.position.y * scale + ); + pos = mat2x2( vec2(cos(angle), sin(angle)), vec2(-sin(angle), cos(angle)) - ); - var scale: f32 = instance.size / global_data.camera_zoom.x; - var pos: vec2 = vec2(vertex.position.x, vertex.position.y); - pos = pos * vec2( - global_sprites[instance.sprite_index].aspect * scale / global_data.window_aspect.x, - scale - ); - - pos = rotation * pos; + ) * pos; - var ipos: vec2 = ( - vec2(instance.position.x, instance.position.y) - + (instance.velocity * age) - - global_data.camera_position + var trans: vec2 = (instance.position + (instance.velocity * age) - global_data.camera_position); + + pos = vec2( + pos.x / global_data.window_aspect.x, + pos.y ); - pos = pos + vec2( - ipos.x / (global_data.camera_zoom.x/2.0) / global_data.window_aspect.x, - ipos.y / (global_data.camera_zoom.x/2.0) + pos = pos + vec2( + trans.x / (global_data.camera_zoom.x / 2.0) / global_data.window_aspect.x, + trans.y / (global_data.camera_zoom.x / 2.0) ); - out.position = vec4(pos, 0.0, 1.0); + + out.position = vec4(pos, 0.0, 1.0); // Compute texture coordinates