diff --git a/src/InOneWeekend/main.cc b/src/InOneWeekend/main.cc index 86576d3..2c35bfe 100644 --- a/src/InOneWeekend/main.cc +++ b/src/InOneWeekend/main.cc @@ -44,45 +44,15 @@ color ray_color(const ray& r, const hittable& world, int depth) { hittable_list random_scene() { hittable_list world; - auto ground_material = make_shared(color(0.5, 0.5, 0.5)); - world.add(make_shared(point3(0,-1000,0), 1000, ground_material)); - - for (int a = -11; a < 11; a++) { - for (int b = -11; b < 11; b++) { - auto choose_mat = random_double(); - point3 center(a + 0.9*random_double(), 0.2, b + 0.9*random_double()); - - if ((center - point3(4, 0.2, 0)).length() > 0.9) { - shared_ptr sphere_material; - - if (choose_mat < 0.8) { - // diffuse - auto albedo = color::random() * color::random(); - sphere_material = make_shared(albedo); - world.add(make_shared(center, 0.2, sphere_material)); - } else if (choose_mat < 0.95) { - // metal - auto albedo = color::random(0.5, 1); - auto fuzz = random_double(0, 0.5); - sphere_material = make_shared(albedo, fuzz); - world.add(make_shared(center, 0.2, sphere_material)); - } else { - // glass - sphere_material = make_shared(1.5); - world.add(make_shared(center, 0.2, sphere_material)); - } - } - } - } + auto ground_material = make_shared(color(0.8, 0.8, 0.0)); + world.add(make_shared(point3(0,-100.5, -1), 100, ground_material)); auto material1 = make_shared(1.5); - world.add(make_shared(point3(0, 1, 0), 1.0, material1)); - - auto material2 = make_shared(color(0.4, 0.2, 0.1)); - world.add(make_shared(point3(-4, 1, 0), 1.0, material2)); + world.add(make_shared(point3(-1, 0, -1.), .45, material1)); + //world.add(make_shared(point3( 0, 0, -1.), .45, material1)); - auto material3 = make_shared(color(0.7, 0.6, 0.5), 0.0); - world.add(make_shared(point3(4, 1, 0), 1.0, material3)); + auto material3 = make_shared(color(0.8, 0.6, 0.2), 0.0); + world.add(make_shared(point3(1, 0, -1), .45, material3)); return world; } @@ -93,9 +63,9 @@ int main() { // Image const auto aspect_ratio = 16.0 / 9.0; - const int image_width = 1200; + const int image_width = 640; const int image_height = static_cast(image_width / aspect_ratio); - const int samples_per_pixel = 10; + const int samples_per_pixel = 50; const int max_depth = 50; // World @@ -104,10 +74,10 @@ int main() { // Camera - point3 lookfrom(13,2,3); + point3 lookfrom(0,0,4); point3 lookat(0,0,0); vec3 vup(0,1,0); - auto dist_to_focus = 10.0; + auto dist_to_focus = 5.0; auto aperture = 0.1; camera cam(lookfrom, lookat, vup, 20, aspect_ratio, aperture, dist_to_focus);