diff --git a/rtiow/src/scenes/book.rs b/rtiow/src/scenes/book.rs index 6b5824b..6d14a4c 100644 --- a/rtiow/src/scenes/book.rs +++ b/rtiow/src/scenes/book.rs @@ -11,7 +11,9 @@ use material::Metal; use renderer::Opt; use renderer::Scene; use sphere::Sphere; +use texture::CheckerTexture; use texture::ConstantTexture; +use texture::Texture; use vec3::Vec3; pub fn new(opt: &Opt) -> Scene { @@ -51,14 +53,22 @@ pub fn new(opt: &Opt) -> Scene { } } -fn random_scene(background_color: Vec3) -> Vec> { +fn random_scene(ground_color: Vec3) -> Vec> { let mut rng = rand::thread_rng(); + let checker = true; + let ground_texture: Box = if checker { + Box::new(CheckerTexture::new( + Box::new(ConstantTexture::new(Vec3::new(0., 0., 0.))), + Box::new(ConstantTexture::new(ground_color)), + )) + } else { + Box::new(ConstantTexture::new(ground_color)) + }; + let mut objects: Vec> = vec![Box::new(Sphere::new( Vec3::new(0., -1000., 0.), 1000., - Box::new(Lambertian::new(Box::new(ConstantTexture::new( - background_color, - )))), + Box::new(Lambertian::new(ground_texture)), ))]; let mut random = || rng.gen_range::(0., 1.);