Make camera dynamic

This commit is contained in:
hal8174 2024-12-01 21:32:56 +01:00
parent 632cb97007
commit e61964c513
2 changed files with 47 additions and 16 deletions

View file

@ -4,7 +4,9 @@ use std::sync::{
};
use rand::{rngs::SmallRng, SeedableRng};
use ray_tracing_core::{camera::BasicCamera, renderer::ClassicalRenderer, scene::Scene};
use ray_tracing_core::{
camera::BasicCamera, prelude::*, renderer::ClassicalRenderer, scene::Scene,
};
use ray_tracing_renderer::{
depth_renderer::DepthRenderer, next_event_estimation::NextEventEstimation,
path_tracer::PathTracer, path_tracer_importance::PathTracerImportance,
@ -45,6 +47,10 @@ pub struct RenderSettings {
pub height: u32,
pub scene: &'static str,
pub renderer_id: usize,
pub camera_pos: Pos3,
pub camera_dir: Dir3,
pub camera_up: Dir3,
pub camera_horizontal_fov: Float,
}
pub enum ControlMessages {
@ -76,10 +82,10 @@ pub fn render_thread(
let mut camera = BasicCamera::new(
settings.width,
settings.height,
e.camera_pos,
e.camera_dir,
e.camera_up,
e.horizontal_fov,
settings.camera_pos,
settings.camera_dir,
settings.camera_up,
settings.camera_horizontal_fov,
);
let mut renderer = (RENDERER[settings.renderer_id].1)(settings.width, settings.height);
@ -94,10 +100,10 @@ pub fn render_thread(
camera = BasicCamera::new(
settings.width,
settings.height,
e.camera_pos,
e.camera_dir,
e.camera_up,
e.horizontal_fov,
settings.camera_pos,
settings.camera_dir,
settings.camera_up,
settings.camera_horizontal_fov,
);
dbg!(&camera);
buffer = vec![0.0; settings.width as usize * settings.height as usize * 3];