From 4206ad7289d197c12b6480978444918c5418d7bf Mon Sep 17 00:00:00 2001 From: Bill Thiede Date: Sat, 22 Sep 2018 20:32:21 -0700 Subject: [PATCH] Use CheckerTexture for ground in book scene. --- rtiow/src/scenes/book.rs | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) 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.);