aboutsummaryrefslogtreecommitdiffstats
path: root/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs24
1 files changed, 20 insertions, 4 deletions
diff --git a/src/main.rs b/src/main.rs
index 3db5b97..b014e4f 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -17,6 +17,8 @@ pub fn random_scene(rng: &mut ThreadRng) -> scene::Scene {
scene.add(Box::new(sphere::Sphere::new(
vec3(0.0, -1000.0, 0.0),
+ 0.0,
+ 1.0,
1000.0,
Box::new(material::Lambertian::new(vec3(0.5, 0.5, 0.5))),
)));
@@ -34,8 +36,12 @@ pub fn random_scene(rng: &mut ThreadRng) -> scene::Scene {
// diffuse
let albedo = utils::random_vector3(rng, 0.0, 1.0)
.mul_element_wise(utils::random_vector3(rng, 0.0, 1.0));
- scene.add(Box::new(sphere::Sphere::new(
+ let moving_center = center + vec3(0.0, rng.gen_range(0.0, 0.5), 0.0);
+ scene.add(Box::new(sphere::Sphere::new_moving(
center,
+ moving_center,
+ 0.0,
+ 1.0,
0.2,
Box::new(material::Lambertian::new(albedo)),
)));
@@ -45,6 +51,8 @@ pub fn random_scene(rng: &mut ThreadRng) -> scene::Scene {
let fuzz = rng.gen_range(0.0, 0.5);
scene.add(Box::new(sphere::Sphere::new(
center,
+ 0.0,
+ 1.0,
0.2,
Box::new(material::Metal::new(albedo, fuzz)),
)));
@@ -52,6 +60,8 @@ pub fn random_scene(rng: &mut ThreadRng) -> scene::Scene {
// glass
scene.add(Box::new(sphere::Sphere::new(
center,
+ 0.0,
+ 1.0,
0.2,
Box::new(material::Dielectric::new(1.5)),
)));
@@ -62,18 +72,24 @@ pub fn random_scene(rng: &mut ThreadRng) -> scene::Scene {
scene.add(Box::new(sphere::Sphere::new(
vec3(0.0, 1.0, 0.0),
+ 0.0,
+ 1.0,
1.0,
Box::new(material::Dielectric::new(1.5)),
)));
scene.add(Box::new(sphere::Sphere::new(
vec3(-4.0, 1.0, 0.0),
+ 0.0,
+ 1.0,
1.0,
Box::new(material::Lambertian::new(vec3(0.4, 0.2, 0.1))),
)));
scene.add(Box::new(sphere::Sphere::new(
vec3(4.0, 1.0, 0.0),
+ 0.0,
+ 1.0,
1.0,
Box::new(material::Metal::new(vec3(0.7, 0.6, 0.5), 0.0)),
)));
@@ -82,9 +98,9 @@ pub fn random_scene(rng: &mut ThreadRng) -> scene::Scene {
}
fn main() {
- let image_width = 400;
- let image_height = 200;
- let samples = 400;
+ let image_width = 800;
+ let image_height = 400;
+ let samples = 1000;
let threads = 4;
let max_depth = 50;
let aspect_ratio = image_width as f64 / image_height as f64;