From 96b0899c14f70b969401a0238d956bbbaced1136 Mon Sep 17 00:00:00 2001 From: Steve Hollasch Date: Sun, 17 May 2020 14:40:40 -0700 Subject: [PATCH 1/2] Remove class flip_face With the changes made to handle surface intersection from either side (refer to #270), we no longer have need for the `flip_face` class. This change removes the class and the associated text in the books. Resolves #482 Resolves #588 --- books/RayTracingTheNextWeek.html | 100 +++--------------- books/RayTracingTheRestOfYourLife.html | 16 +-- ...l-empty.jpg => img-2.18-cornell-empty.jpg} | Bin images/img-2.18-cornell-initial.jpg | Bin 13308 -> 0 bytes ...blocks.jpg => img-2.19-cornell-blocks.jpg} | Bin ...dard.jpg => img-2.20-cornell-standard.jpg} | Bin ...l-smoke.jpg => img-2.21-cornell-smoke.jpg} | Bin ...ok2-final.jpg => img-2.22-book2-final.jpg} | Bin 8 files changed, 20 insertions(+), 96 deletions(-) rename images/{img-2.19-cornell-empty.jpg => img-2.18-cornell-empty.jpg} (100%) delete mode 100644 images/img-2.18-cornell-initial.jpg rename images/{img-2.20-cornell-blocks.jpg => img-2.19-cornell-blocks.jpg} (100%) rename images/{img-2.21-cornell-standard.jpg => img-2.20-cornell-standard.jpg} (100%) rename images/{img-2.22-cornell-smoke.jpg => img-2.21-cornell-smoke.jpg} (100%) rename images/{img-2.23-book2-final.jpg => img-2.22-book2-final.jpg} (100%) diff --git a/books/RayTracingTheNextWeek.html b/books/RayTracingTheNextWeek.html index 01eb1f6d..58f70d3b 100644 --- a/books/RayTracingTheNextWeek.html +++ b/books/RayTracingTheNextWeek.html @@ -2202,82 +2202,9 @@
We get: - ![Image 18: Initial empty Cornell box](../images/img-2.18-cornell-initial.jpg class=pixel) - -
- - -Flipped Objects ----------------- -
-This is very noisy because the light is small. But we have a problem: some of the walls are facing -the wrong way. We haven't specified that a diffuse material should behave differently on different -faces of the object, but what if the Cornell box had a different pattern on the inside and outside -walls? The rectangle objects are described such that their front faces are always in the directions -$(1,0,0)$, $(0,1,0)$, or $(0,0,1)$. We need a way to switch the faces of an object. Let’s make a -hittable that does nothing but hold another hittable, and flips the face: - - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C++ - class flip_face : public hittable { - public: - flip_face(shared_ptr p) : ptr(p) {} - - virtual bool hit(const ray& r, double t_min, double t_max, hit_record& rec) const { - if (!ptr->hit(r, t_min, t_max, rec)) - return false; - - rec.front_face = !rec.front_face; - return true; - } - - virtual bool bounding_box(double t0, double t1, aabb& output_box) const { - return ptr->bounding_box(t0, t1, output_box); - } - - public: - shared_ptr ptr; - }; - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - [Listing [flip-face]: [hittable.h] Flip-Face function] -
- -
-This makes Cornell: - - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C++ - hittable_list cornell_box() { - hittable_list objects; - - auto red = make_shared(make_shared(.65, .05, .05)); - auto white = make_shared(make_shared(.73, .73, .73)); - auto green = make_shared(make_shared(.12, .45, .15)); - auto light = make_shared(make_shared(15, 15, 15)); - - - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C++ highlight - objects.add(make_shared(make_shared(0, 555, 0, 555, 555, green))); - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C++ - objects.add(make_shared(0, 555, 0, 555, 0, red)); - objects.add(make_shared(213, 343, 227, 332, 554, light)); - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C++ highlight - objects.add(make_shared(make_shared(0, 555, 0, 555, 555, white))); - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C++ - objects.add(make_shared(0, 555, 0, 555, 0, white)); - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C++ highlight - objects.add(make_shared(make_shared(0, 555, 0, 555, 555, white))); - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C++ - - return objects; - } - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - [Listing [cornell-box-flipped]: [main.cc] Empty Cornell box with flipped rectangles] -
- -
-And voila: - - ![Image 19: Empty Cornell box with fixed walls](../images/img-2.19-cornell-empty.jpg class=pixel) + ![Image 18: Empty Cornell box](../images/img-2.18-cornell-empty.jpg class=pixel) +This image is very noisy because the light is small.
@@ -2312,16 +2239,13 @@ box_max = p1; sides.add(make_shared(p0.x(), p1.x(), p0.y(), p1.y(), p1.z(), ptr)); - sides.add(make_shared( - make_shared(p0.x(), p1.x(), p0.y(), p1.y(), p0.z(), ptr))); + sides.add(make_shared(p0.x(), p1.x(), p0.y(), p1.y(), p0.z(), ptr)); sides.add(make_shared(p0.x(), p1.x(), p0.z(), p1.z(), p1.y(), ptr)); - sides.add(make_shared( - make_shared(p0.x(), p1.x(), p0.z(), p1.z(), p0.y(), ptr))); + sides.add(make_shared(p0.x(), p1.x(), p0.z(), p1.z(), p0.y(), ptr)); sides.add(make_shared(p0.y(), p1.y(), p0.z(), p1.z(), p1.x(), ptr)); - sides.add(make_shared( - make_shared(p0.y(), p1.y(), p0.z(), p1.z(), p0.x(), ptr))); + sides.add(make_shared(p0.y(), p1.y(), p0.z(), p1.z(), p0.x(), ptr)); } bool box::hit(const ray& r, double t0, double t1, hit_record& rec) const { @@ -2344,7 +2268,7 @@
This gives: - ![Image 20: Cornell box with two blocks](../images/img-2.20-cornell-blocks.jpg class=pixel) + ![Image 19: Cornell box with two blocks](../images/img-2.19-cornell-blocks.jpg class=pixel)
@@ -2572,7 +2496,7 @@
Which yields: - ![Image 21: Standard Cornell box scene](../images/img-2.21-cornell-standard.jpg class=pixel) + ![Image 20: Standard Cornell box scene](../images/img-2.20-cornell-standard.jpg class=pixel)
@@ -2739,12 +2663,12 @@ auto green = make_shared(make_shared(.12, .45, .15)); auto light = make_shared(make_shared(7, 7, 7)); - objects.add(make_shared(make_shared(0, 555, 0, 555, 555, green))); + objects.add(make_shared(0, 555, 0, 555, 555, green)); objects.add(make_shared(0, 555, 0, 555, 0, red)); objects.add(make_shared(113, 443, 127, 432, 554, light)); - objects.add(make_shared(make_shared(0, 555, 0, 555, 555, white))); + objects.add(make_shared(0, 555, 0, 555, 555, white)); objects.add(make_shared(0, 555, 0, 555, 0, white)); - objects.add(make_shared(make_shared(0, 555, 0, 555, 555, white))); + objects.add(make_shared(0, 555, 0, 555, 555, white)); shared_ptr box1 = make_shared(point3(0,0,0), point3(165,330,165), white); box1 = make_shared(box1, 15); @@ -2766,7 +2690,7 @@
We get: - ![Image 22: Cornell box with blocks of smoke](../images/img-2.22-cornell-smoke.jpg class=pixel) + ![Image 21: Cornell box with blocks of smoke](../images/img-2.21-cornell-smoke.jpg class=pixel)
@@ -2854,7 +2778,7 @@
Running it with 10,000 rays per pixel yields: - ![Image 23: Final scene](../images/img-2.23-book2-final.jpg) + ![Image 22: Final scene](../images/img-2.22-book2-final.jpg)
diff --git a/books/RayTracingTheRestOfYourLife.html b/books/RayTracingTheRestOfYourLife.html index 737e03b9..e6a82b82 100644 --- a/books/RayTracingTheRestOfYourLife.html +++ b/books/RayTracingTheRestOfYourLife.html @@ -763,12 +763,12 @@ auto green = make_shared(make_shared(.12, .45, .15)); auto light = make_shared(make_shared(15, 15, 15)); - world.add(make_shared(make_shared(0, 555, 0, 555, 555, green))); + world.add(make_shared(0, 555, 0, 555, 555, green)); world.add(make_shared(0, 555, 0, 555, 0, red)); - world.add(make_shared(make_shared(213, 343, 227, 332, 554, light))); - world.add(make_shared(make_shared(0, 555, 0, 555, 555, white))); + world.add(make_shared(213, 343, 227, 332, 554, light)); + world.add(make_shared(0, 555, 0, 555, 555, white)); world.add(make_shared(0, 555, 0, 555, 0, white)); - world.add(make_shared(make_shared(0, 555, 0, 555, 555, white))); + world.add(make_shared(0, 555, 0, 555, 555, white)); shared_ptr box1 = make_shared(point3(0,0,0), point3(165,330,165), white); box1 = make_shared(box1, 15); @@ -2113,12 +2113,12 @@ auto green = make_shared(make_shared(.12, .45, .15)); auto light = make_shared(make_shared(15, 15, 15)); - world.add(make_shared(make_shared(0, 555, 0, 555, 555, green))); + world.add(make_shared(0, 555, 0, 555, 555, green)); world.add(make_shared(0, 555, 0, 555, 0, red)); - world.add(make_shared(make_shared(213, 343, 227, 332, 554, light))); - world.add(make_shared(make_shared(0, 555, 0, 555, 555, white))); + world.add(make_shared(213, 343, 227, 332, 554, light)); + world.add(make_shared(0, 555, 0, 555, 555, white)); world.add(make_shared(0, 555, 0, 555, 0, white)); - world.add(make_shared(make_shared(0, 555, 0, 555, 555, white))); + world.add(make_shared(0, 555, 0, 555, 555, white)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C++ highlight diff --git a/images/img-2.19-cornell-empty.jpg b/images/img-2.18-cornell-empty.jpg similarity index 100% rename from images/img-2.19-cornell-empty.jpg rename to images/img-2.18-cornell-empty.jpg diff --git a/images/img-2.18-cornell-initial.jpg b/images/img-2.18-cornell-initial.jpg deleted file mode 100644 index d103272eb3b634ed7ae6b604fe939dc249defe1a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13308 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 diff --git a/images/img-2.20-cornell-blocks.jpg b/images/img-2.19-cornell-blocks.jpg similarity index 100% rename from images/img-2.20-cornell-blocks.jpg rename to images/img-2.19-cornell-blocks.jpg diff --git a/images/img-2.21-cornell-standard.jpg b/images/img-2.20-cornell-standard.jpg similarity index 100% rename from images/img-2.21-cornell-standard.jpg rename to images/img-2.20-cornell-standard.jpg diff --git a/images/img-2.22-cornell-smoke.jpg b/images/img-2.21-cornell-smoke.jpg similarity index 100% rename from images/img-2.22-cornell-smoke.jpg rename to images/img-2.21-cornell-smoke.jpg diff --git a/images/img-2.23-book2-final.jpg b/images/img-2.22-book2-final.jpg similarity index 100% rename from images/img-2.23-book2-final.jpg rename to images/img-2.22-book2-final.jpg From 5d2a41707cd31a8ecfb27f55aadcc56d0faeb8af Mon Sep 17 00:00:00 2001 From: Steve Hollasch Date: Sun, 17 May 2020 14:51:10 -0700 Subject: [PATCH 2/2] Update changelog with flip_face removal --- CHANGELOG.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 68496ac6..e9a40b20 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,14 @@ Change Log -- Ray Tracing in One Weekend # v3.2.0 (in progress) +### Common + - Removed: now that the code handles ray-surface intersection from either side, we no longer need + the `flip_face` class, so we've deleted it from the text and from the code (#482, #270) + +### _The Next Week_ + - Removed: Deleted the section covering the old `flip_face` class, renumbered images as this + eliminated the rendering with missing Cornell box faces (#482) + ---------------------------------------------------------------------------------------------------- # v3.1.2 (in progress)