Make camera dynamic
This commit is contained in:
parent
632cb97007
commit
e61964c513
2 changed files with 47 additions and 16 deletions
|
|
@ -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];
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue