hello_sphere/
hello_sphere.rs

1use lumo::tracer::*;
2use lumo::*;
3
4fn main() -> Result<(), png::EncodingError> {
5    let camera = Camera::default(1280, 720);
6    let mut scene = Scene::default();
7
8    scene.add(Plane::new(
9        Vec3::NEG_Y,
10        Vec3::Y,
11        Material::diffuse(Texture::Solid(Color::new(190, 200, 210))),
12    ));
13
14    scene.add_light(Sphere::new(
15        8.0 * Vec3::Y + 1.5 * Vec3::NEG_Z,
16        4.0,
17        Material::Light(Texture::Solid(Color::WHITE)),
18    ));
19
20    scene.add(
21        Sphere::new(
22            Vec3::ZERO,
23            1.0,
24            Material::diffuse(Texture::Solid(Color::new(0, 0, 255))),
25        )
26        .scale(0.3, 0.3, 0.3)
27        .translate(0.0, -0.7, -1.5),
28    );
29
30    let mut renderer = Renderer::new(scene, camera);
31    renderer.set_samples(36);
32    renderer.render().save("hello.png")
33}