Make it easy for bench scene to compare hitlist vs accelerated rendering.
This commit is contained in:
parent
02639e4d3f
commit
a5b5ccb291
@ -1,6 +1,7 @@
|
|||||||
use rand;
|
use rand;
|
||||||
use rand::Rng;
|
use rand::Rng;
|
||||||
|
|
||||||
|
use bvh::BVH;
|
||||||
use camera::Camera;
|
use camera::Camera;
|
||||||
use hitable::Hit;
|
use hitable::Hit;
|
||||||
use hitable_list::HitableList;
|
use hitable_list::HitableList;
|
||||||
@ -38,19 +39,28 @@ pub fn new(opt: &Opt) -> Scene {
|
|||||||
let g = rng.gen_range::<f32>(0., 1.);
|
let g = rng.gen_range::<f32>(0., 1.);
|
||||||
let b = rng.gen_range::<f32>(0., 1.);
|
let b = rng.gen_range::<f32>(0., 1.);
|
||||||
|
|
||||||
|
let x_pos = (x - len / 2) as f32 + rng.gen_range(-0.1, 0.1);
|
||||||
|
let z_pos = (z - len / 2) as f32 + rng.gen_range(-0.1, 0.1);
|
||||||
|
|
||||||
grid.push(Box::new(Sphere::new(
|
grid.push(Box::new(Sphere::new(
|
||||||
Vec3::new((x - len / 2) as f32, 0., (z - len / 2) as f32),
|
Vec3::new(x_pos, 0., z_pos),
|
||||||
0.5,
|
0.5,
|
||||||
Box::new(Lambertian::new(Vec3::new(r, g, b))),
|
Box::new(Lambertian::new(Vec3::new(r, g, b))),
|
||||||
)));
|
)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
let use_kdtree = true;
|
|
||||||
let world: Box<Hit>;
|
let world: Box<Hit>;
|
||||||
if use_kdtree {
|
if opt.use_accel {
|
||||||
|
let use_kd = true;
|
||||||
|
if use_kd {
|
||||||
let kdtree = KDTree::new(grid, time_min, time_max);
|
let kdtree = KDTree::new(grid, time_min, time_max);
|
||||||
//trace!(target: "k-d tree", "World {}", kdtree);
|
trace!("k-d tree world {}", kdtree);
|
||||||
world = Box::new(kdtree);
|
world = Box::new(kdtree);
|
||||||
|
} else {
|
||||||
|
let bvh = BVH::new(grid, time_min, time_max);
|
||||||
|
trace!("BVH world {}", bvh);
|
||||||
|
world = Box::new(bvh);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
world = Box::new(HitableList::new(grid));
|
world = Box::new(HitableList::new(grid));
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user