From a94ab87eabce6f97d7a79e49d3f6f2913cc21443 Mon Sep 17 00:00:00 2001 From: Bradlee Speice Date: Sat, 8 Feb 2025 18:39:31 -0500 Subject: [PATCH] Start fixing the camera; use image width for indexing --- crates/flare-shader/src/lib.rs | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) 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; }