Add example to lower system load

This commit is contained in:
max.nuding 2022-07-11 08:11:07 +02:00
parent 560b921b3a
commit 30b972ce5c
Failed to extract signature
2 changed files with 3 additions and 1 deletions

1
.gitignore vendored
View File

@ -3,3 +3,4 @@
.idea .idea
*.iml *.iml
.vscode/ .vscode/
*.png

View File

@ -117,6 +117,7 @@ fn cornell_box() -> Scene {
))); )));
// Boxes // Boxes
let rotated1 = RotateY::new( let rotated1 = RotateY::new(
Cuboid::new( Cuboid::new(
Point3::new(0.0, 0.0, 0.0), Point3::new(0.0, 0.0, 0.0),
@ -144,7 +145,6 @@ fn cornell_box() -> Scene {
); );
world.push(Arc::new(box2)); world.push(Arc::new(box2));
let look_from = Point3::new(278.0, 278.0, -800.0); let look_from = Point3::new(278.0, 278.0, -800.0);
let look_at = Point3::new(278.0, 278.0, 0.0); let look_at = Point3::new(278.0, 278.0, 0.0);
let focus_dist = 2.0; let focus_dist = 2.0;
@ -493,6 +493,7 @@ fn main() {
let image_height: usize = (IMAGE_WIDTH as f64 / scene_setup.cam.aspect_ratio()) as usize; let image_height: usize = (IMAGE_WIDTH as f64 / scene_setup.cam.aspect_ratio()) as usize;
let mut pixels = vec![0; IMAGE_WIDTH * image_height * 3]; let mut pixels = vec![0; IMAGE_WIDTH * image_height * 3];
let bands: Vec<(usize, &mut [u8])> = pixels.chunks_mut(3).enumerate().collect(); let bands: Vec<(usize, &mut [u8])> = pixels.chunks_mut(3).enumerate().collect();
//rayon::ThreadPoolBuilder::new().num_threads(3).build_global().unwrap(); // Enable, to reduce load
let count = Mutex::new(0); let count = Mutex::new(0);
bands.into_par_iter().for_each(|(i, pixel)| { bands.into_par_iter().for_each(|(i, pixel)| {
let row = image_height - (i / IMAGE_WIDTH) - 1; let row = image_height - (i / IMAGE_WIDTH) - 1;