box/
box.rs

1use lumo::tracer::*;
2use lumo::*;
3
4fn main() -> Result<(), std::io::Error> {
5    let camera = Camera::default(1024, 768);
6    let def_color = Color::new(242, 242, 242);
7    let mut scene = Scene::empty_box(
8        def_color,
9        // left
10        Material::diffuse(Texture::Solid(Color::new(255, 0, 255))),
11        // right
12        Material::diffuse(Texture::Solid(Color::new(0, 255, 255))),
13    );
14
15    scene.add(Sphere::new(
16        Vec3::new(-0.45, -0.5, -1.5),
17        0.25,
18        Material::metallic(
19            Texture::Solid(Color::WHITE),
20            0.0,
21        )
22    ));
23
24    scene.add(Sphere::new(
25        Vec3::new(0.45, -0.5, -1.3),
26        0.25,
27        Material::transparent(
28            Texture::Solid(Color::WHITE),
29            0.0,
30            2.5,
31        ),
32    ));
33
34    let renderer = Renderer::new(scene, camera);
35    renderer.render().save("box.png")?;
36    Ok(())
37}