hello_sphere/
hello_sphere.rs1use 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}