wip: parallelization
This commit is contained in:
@@ -10,14 +10,33 @@ use crate::{
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct Scene {
|
||||
pub camera: Camera,
|
||||
pub _materials: Vec<Arc<dyn Material>>,
|
||||
pub camera: Camera, // FIXME: should not be public
|
||||
pub objects: Vec<Arc<dyn Hittable>>,
|
||||
// image
|
||||
pub filename: String,
|
||||
pub image_width: u32,
|
||||
pub image_height: u32,
|
||||
// raytracing // TODO: think about organisation of these vars, also in Camera
|
||||
pub max_depth: u32,
|
||||
}
|
||||
|
||||
impl Scene {
|
||||
pub fn render(&mut self) {
|
||||
self.camera.render(&self.objects);
|
||||
pub fn new(
|
||||
camera: Camera,
|
||||
objects: Vec<Arc<dyn Hittable>>,
|
||||
filename: String,
|
||||
image_width: u32,
|
||||
image_height: u32,
|
||||
max_depth: u32,
|
||||
) -> Self {
|
||||
Self {
|
||||
camera,
|
||||
objects,
|
||||
filename,
|
||||
image_width,
|
||||
image_height,
|
||||
max_depth,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,6 +45,10 @@ struct SceneDef {
|
||||
pub camera: RawCamera,
|
||||
pub materials: Vec<MaterialDef>,
|
||||
pub objects: Vec<HittableDef>,
|
||||
pub filename: String,
|
||||
pub image_width: u32,
|
||||
pub image_height: u32,
|
||||
pub max_depth: u32,
|
||||
}
|
||||
|
||||
impl<'de> Deserialize<'de> for Scene {
|
||||
@@ -46,8 +69,11 @@ impl<'de> Deserialize<'de> for Scene {
|
||||
.collect();
|
||||
Ok(Self {
|
||||
camera: Camera::from(conc.camera),
|
||||
_materials: mats,
|
||||
objects: objs,
|
||||
filename: conc.filename,
|
||||
image_width: conc.image_width,
|
||||
image_height: conc.image_height,
|
||||
max_depth: conc.max_depth,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user