diff --git a/ray-tracing-core/src/camera.rs b/ray-tracing-core/src/camera.rs index 994e3a0..bc202ba 100644 --- a/ray-tracing-core/src/camera.rs +++ b/ray-tracing-core/src/camera.rs @@ -6,6 +6,7 @@ pub trait Camera { fn height(&self) -> u32; } +#[derive(Debug)] pub struct BasicCamera { width: u32, height: u32, @@ -55,10 +56,11 @@ impl BasicCamera { impl Camera for BasicCamera { fn forward(&self, x: u32, y: u32, rng: &mut R) -> Ray { // normalize x and y to -0.5 to 0.5 - let x = ((x as Float + rng.gen::()) / (self.width as Float)) - 0.5; - let y = ((y as Float + rng.gen::()) / (self.height as Float)) - 0.5; - let dir = self.dir + x * self.h + y * self.v; + let x_float = ((x as Float + rng.gen::()) / (self.width as Float)) - 0.5; + let y_float = ((y as Float + rng.gen::()) / (self.height as Float)) - 0.5; + + let dir = self.dir + x_float * self.h + y_float * self.v; Ray::new(self.pos, dir.normalize(), 0.0) } diff --git a/ray-tracing-egui/src/render.rs b/ray-tracing-egui/src/render.rs index d5a602f..8f73b28 100644 --- a/ray-tracing-egui/src/render.rs +++ b/ray-tracing-egui/src/render.rs @@ -99,6 +99,7 @@ pub fn render_thread( e.camera_up, e.horizontal_fov, ); + dbg!(&camera); buffer = vec![0.0; settings.width as usize * settings.height as usize * 3]; renderer = (RENDERER[settings.renderer_id].1)(settings.width, settings.height); samples = 0; @@ -106,7 +107,7 @@ pub fn render_thread( buffer.par_chunks_mut(3).enumerate().for_each(|(i, c)| { let x = (i % settings.width as usize) as u32; - let y = (i / settings.height as usize) as u32; + let y = (i / settings.width as usize) as u32; let mut rng = SmallRng::seed_from_u64( (x + y * settings.width) as u64 diff --git a/ray-tracing-image/src/main.rs b/ray-tracing-image/src/main.rs index 9526157..b4b25a3 100644 --- a/ray-tracing-image/src/main.rs +++ b/ray-tracing-image/src/main.rs @@ -58,5 +58,5 @@ fn main() -> ImageResult<()> { let r = PathTracerImportance::new(400, 400); - render_image(&r, &s.scene, &c, "test.exr", 1048) + render_image(&r, &(s.scene)(), &c, "test.exr", 1048) }