ft: 11: dielectrics

This commit is contained in:
2026-04-21 23:03:46 +02:00
parent 66c6bf438b
commit 79e6d04e50
2 changed files with 33 additions and 4 deletions

View File

@@ -21,18 +21,22 @@ fn main() {
pretty_env_logger::init();
// setup objects
let blue = Arc::new(Metal::rgb(0.2, 0.4, 0.8, 1., 0.1));
let metal = Arc::new(Metal::rgb(0.7, 0.4, 0.2, 1., 0.1));
let ground = Arc::new(Lambertian::rgb(0.8, 0.8, 0., 1.0));
let center = Arc::new(Lambertian::rgb(0.1, 0.2, 0.5, 1.));
let left = Arc::new(Dielectric::new(1.5));
let bubble = Arc::new(Dielectric::new(1. / 1.5));
let right = Arc::new(Metal::rgb(0.8, 0.6, 0.2, 1., 1.0));
let mut world = vec![Sphere::xyz(0., 0.5, -0.8, 0.1, metal.clone())];
world.push(Sphere::xyz(0., -100.5, -1., 100., ground.clone()));
world.push(Sphere::xyz(0., 0., -1.2, 0.5, center.clone()));
world.push(Sphere::xyz(-1., 0., -1.0, 0.5, left.clone()));
world.push(Sphere::xyz(-1., 0., -1.0, 0.4, bubble.clone()));
world.push(Sphere::xyz(1., 0., -1.0, 0.5, right.clone()));
world.push(Sphere::xyz(0., 0.7, -0.4, 0.2, blue.clone()));
let c = Camera::new(16. / 9., 800, 2, 50);
let c = Camera::new(16. / 9., 1920, 3, 50);
c.render(&world);
}