Change Scene trait to account for material data
This commit is contained in:
parent
76448ed442
commit
2bc5ec93fe
19 changed files with 306 additions and 124 deletions
|
|
@ -36,13 +36,14 @@ struct Args {
|
|||
}
|
||||
|
||||
fn render_image<
|
||||
'sc,
|
||||
R: ClassicalRenderer<SmallRng, S, C> + Sync,
|
||||
S: Scene<SmallRng> + Sync,
|
||||
C: Camera<SmallRng> + Sync,
|
||||
>(
|
||||
name: impl AsRef<str>,
|
||||
renderer: &R,
|
||||
scene: &S,
|
||||
scene: &'sc S,
|
||||
camera: &C,
|
||||
samples_per_pixel: usize,
|
||||
tev: &mut TevClient,
|
||||
|
|
@ -108,7 +109,7 @@ fn render_image<
|
|||
Ok(())
|
||||
}
|
||||
|
||||
fn choose_renderer<S, C>(args: &Args, scene: &str, s: &S, c: &C, tev: &mut TevClient)
|
||||
fn choose_renderer<'sc, S, C>(args: &Args, scene: &str, s: &'sc S, c: &C, tev: &mut TevClient)
|
||||
where
|
||||
S: Scene<SmallRng> + Sync,
|
||||
C: Camera<SmallRng> + Sync,
|
||||
|
|
@ -183,7 +184,7 @@ fn main() {
|
|||
|
||||
let mut client = TevClient::wrap(TcpStream::connect(&args.tev).unwrap());
|
||||
|
||||
let map = example_scenes();
|
||||
let map = example_scenes::<SmallRng>();
|
||||
|
||||
let scenes: Vec<&str> = if args.pbrt_filename.is_none() {
|
||||
if args.scenes.is_empty() {
|
||||
|
|
@ -208,8 +209,14 @@ fn main() {
|
|||
f.get_camera_up(),
|
||||
f.get_horizontal_fov(),
|
||||
);
|
||||
|
||||
choose_renderer(&args, scene, &s, &c, &mut client);
|
||||
match &s {
|
||||
ray_tracing_scene::examples::ExampleSceneEnum::AccelerationStructureScene(s) => {
|
||||
choose_renderer(&args, scene, s, &c, &mut client);
|
||||
}
|
||||
ray_tracing_scene::examples::ExampleSceneEnum::TriangleBVH(s) => {
|
||||
choose_renderer(&args, scene, s, &c, &mut client);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if let Some(pbrt_filename) = &args.pbrt_filename {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue