diff --git a/crates/flare-shader/src/lib.rs b/crates/flare-shader/src/lib.rs index d2480fb..ed31d83 100644 --- a/crates/flare-shader/src/lib.rs +++ b/crates/flare-shader/src/lib.rs @@ -62,10 +62,11 @@ pub struct CameraConstants { impl CameraConstants { pub fn camera(&self, image_width: i32, image_height: i32) -> glam::Affine2 { + let zoom_factor = 2f32.powf(self.zoom); let zoom_rotate_offset = glam::Affine2::from_scale_angle_translation( - glam::Vec2::splat(2f32.powf(self.zoom)), + glam::Vec2::splat(zoom_factor), self.rotate.to_radians(), - -vec2(self.offset_x, self.offset_y), + -vec2(self.offset_x, self.offset_y) * zoom_factor, ); let ifs_to_pixel = glam::Affine2::from_scale_angle_translation( glam::Vec2::splat(self.scale), @@ -262,10 +263,10 @@ pub fn main_cs( // Fixed camera, should be provided by a uniform in the future let camera = CameraConstants { scale: max_dimension as f32 / 4.0, - zoom: 0.0, + zoom: 2.0, rotate: 0.0, - offset_x: 0.0, - offset_y: 0.0, + offset_x: 0.5, + offset_y: 0.5, } .camera(image_constants.accum_width, image_constants.accum_height); @@ -285,7 +286,7 @@ pub fn main_cs( let ii = image_index( pixel_coordinates.x, pixel_coordinates.y, - image_constants.accum_height, + image_constants.accum_width, ); accum_image[ii as usize] = Color::WHITE; }