1- Change Log
1+ Change Log -- Ray Tracing in One Weekend
22====================================================================================================
33
4- // Current to 00d0ab0 2020-03-05
4+ ----------------------------------------------------------------------------------------------------
5+ # v3.0.0 (in progress) / Current to b3f0bbc 2020-03-21
56
6- v3.0.0 (in progress)
7- ---------------------
8- Common
9- - New: CMake configuration & build
10- - New: File constants.h with portable math constants. Fixes [ #151 ] [ ]
11- - New: ` src/common ` directory for code shared across books
12- - New: Common project-wide header: ` src/common/rtweekend.h `
13- - New: ` vec3::write_color ` - provides a robust output method for color data (#93 )
14- - Change: Diffuse PDF computation uses random point _ on_ sphere, rather than _ inside_
7+ With the migration to a web format accomplished in v2.0.0, we immediately began work on a new major
8+ release: v3.0.0. This release tackles the following key themes:
9+
10+ - Establishing a common build system for the three projects. We chose CMake for its broad support
11+ for multiple platforms, as well as multiple build tools and IDEs. This change includes a
12+ reorganization of the project source files, and unifying a lot of code across projects.
13+
14+ - A major upgrade of the project source code, addressing a number of large changes that we had
15+ deferred for later.
16+
17+ - A number of larger changes to the book content, refining some approaches and ideas, and
18+ addressing some areas in the text that needed improvement.
19+
20+ Following this release, we expect to switch to a much more incremental approach, mostly with
21+ patch-level (fix) changes and some minor-level (addition) changes.
22+
23+ ### Common to All Project Source
1524- Change: Default floating-point type changed from ` float ` to ` double ` (#150 )
16- - Change: Disable compile warnings for external ` stb_image.h ` on Windows
17- - Change: Replace pi with portable version. Fixes [ #207 ] [ ]
18- - Change: Replace MAXFLOAT with (portable) infinity (#195 , #216 )
19- - Change: A _ lot_ of code refactoring throughout
20- - New: ` degrees_to_radians() ` utility function (#217 )
21- - Change: Lots more highlighting of changed code in books to aid reading
22- - Change: Improved random number generator utilities
23- - Change: Math typesetting fixes throughout the books (#13 )
25+ - Change: Materials are now referenced with ` std::shared_ptr ` pointers
26+ - Change: Complete elimination of bare pointers and ` new ` /` delete `
27+ - Change: ` hittable_list ` uses ` std::vector ` plus ` std::shared_ptr ` pointers
2428- Change: Header cleanup across the source code (#218 , #220 )
25- - New: Added code listing captions, including source file name, for all books (#238 )
26- - New: Added captions to all figures (#238 )
27- - Change: Improved naming of auxilliary programs in _ The Rest Of Your Life_ source
2829- Change: Cleaned up standard C++ header use (#19 )
30+ - Change: Improved random number generator utilities
31+ - Change: Replace MAXFLOAT with (portable) infinity (#195 , #216 )
32+ - Change: A _ lot_ of code cleanup, refactoring, renaming (#192 )
33+ - Change: Disable compile warnings for external ` stb_image.h ` on Windows
34+ - Change: Replace pi with portable version (#207 )
2935- Change: ` ray_color() ` function now has max depth passed in, rather than hard-coding it (#143 )
30- - Fix: Fixed various minor problems in the text
31- - Change: Code in source and in book reformatted to a consistent 96-column line length (#219 )
32- - Change: Books now use Markdeep's chapter indirection syntax
33- - Fix: Fixed bug in ` noise_texture::value() `
34- - New: Clarified text around the ideal Lambertian distribution (#155 )
3536- Change: Added ` random_in_unit_sphere() ` , ` random_unit_vector() ` , ` random_in_hemisphere() ` to
3637 vec3.h. Fixed places where we were using one but should have been using another. (#145 )
3738- Change: General rework of the ` vec3 ` header (#153 , #156 , #215 )
38- - Change: Updated several output images to match code updates
39- - Change: Books general styling improvements (#197 )
40- - Change: Lots of code cleanup (#192 )
4139- Change: Clarify sphere intersection code, plus slight perf improvement (#113 )
42- - Change: Reworked Lambertian reflection text (#155 )
43- - Change: Added proper handling of front vs back face intersection
44- - Add: Added progress output for main programs (#139 )
45- - Deleted: Several unused source files from ` src/TheRestOfYourLife `
4640- Change: ` ray::point_at_parameter() ` renamed to ` ray::at() `
4741- Change: Moved ` ffmin() ` , ` ffmax() ` from ` aabb.h ` to ` rtweekend.h `
48- - Fix: Delete unused variable ` p ` in main()
4942- Change: Move low-level utility functions to more appropriate headers
50- - Add: ` random_int() ` , ` random_double() ` , and ` vec3::random() ` utility functions
5143- Change: ` squared_length() ` renamed to ` length_squared() `
52- - Add: Added safety value when surface texture has null data
53- - Add: Local copy of ` markdeep.min.js ` for offline reading
5444- Change: Update ` sphere::hit() ` function.
55- - Add: Additional explanatory text to the dielectric chapter
5645- Change: Refraction variables renamed to match reflection variable names
57- - Change: ` hittable_list ` uses ` std::vector ` plus ` std::shared_ptr ` pointers
58- - Change: Materials are now referenced with ` std::shared_ptr ` pointers
59- - Change: Complete elimination of bare pointers and ` new ` /` delete `
60- - Change: Assorted variable renames for clarity
61- - Add: "The Next Week" main program added swtich statement for different scenes
62- - Add: "The Next Week" main program now defines all image/camera parameters for each scene
63- - Add: Main programs now define and handle parameterized background color
64- - Change: General refactorings of code for clarity / simplicity
65- - Change: Refactored acknowledgements. These are now moved to and duplicated in each book
6646- Change: Simplify lambertian scatter direction calculation
67- - Change: Improve color [ 0,1] -> [ 0,255] mapping
68- - Add: Draft image for hemispherical rendering
47+ - New: CMake configuration & build
48+ - New: Added progress output for main programs (#139 )
49+ - New: ` src/common ` directory for code shared across books
50+ - New: Common project-wide header: ` src/common/rtweekend.h `
51+ - New: File constants.h with portable math constants (#151 )
52+ - New: ` vec3::write_color ` - provides a robust output method for color data (#93 )
53+ - New: ` degrees_to_radians() ` utility function (#217 )
54+ - New: ` random_int() ` , ` random_double() ` , and ` vec3::random() ` utility functions
55+ - New: Added safety value when surface texture has null data
56+ - New: Main programs now define and handle parameterized background color
57+ - Fix: Diffuse PDF computation uses random point _ on_ sphere, rather than _ inside_
58+ - Fix: Improve color [ 0,1] -> [ 0,255] mapping
59+
60+ ### Common to All Books
61+ - Change: Code in source and in book reformatted to a consistent 96-column line length (#219 )
62+ - Change: Lots more highlighting of changed code in books to aid reading
63+ - Change: Math typesetting fixes throughout the books (#13 )
64+ - Change: Books now use Markdeep's chapter indirection syntax
65+ - Change: Updated several output images to match code updates
66+ - Change: Books general styling improvements (#197 )
67+ - Change: Refactored acknowledgements. These are now moved to and duplicated in each book
68+ - New: Added code listing captions, including source file name, for all books (#238 )
69+ - New: Added captions to all figures (#238 )
70+ - New: Local copy of ` markdeep.min.js ` for offline reading
71+ - Fix: Fixed various minor problems in the text
72+
73+ ### _ In One Weekend_
74+ - Change: Reworked Lambertian reflection text (#155 )
75+ - New: Clarified text around the ideal Lambertian distribution (#155 )
76+ - New: Additional explanatory text to the dielectric chapter
77+ - New: Image for hemispherical rendering
78+ - Fix: Update ` ray_color() ` code blocks to match current source (#391 )
79+
80+ ### _ The Next Week_
81+ - Change: Added proper handling of front vs back face intersection (#270 )
82+ - New: "The Next Week" main program added swtich statement for different scenes
83+ - New: "The Next Week" main program now defines all image/camera parameters for each scene
84+ - Fix: Fixed bug in ` noise_texture::value() ` (#396 )
6985- Fix: Correct first Perlin noise() function in "The Next Week".
86+ - Fix: Fix OCR error in ` texture::value() ` function (#399 )
87+ - Fix: Remove premature declaration of ` moving_sphere::bounding_box() ` (#405 )
7088
89+ ### _ The Rest of Your Life_
90+ - Change: Improved naming of auxilliary programs in _ The Rest of Your Life_ source
91+ - Fix: Delete unused variable ` p ` in main() (#317 )
92+ - Deleted: Several unused source files from ` src/TheRestOfYourLife `
93+
94+
95+ ----------------------------------------------------------------------------------------------------
96+ # v2.0.0 (2019-10-07)
97+
98+ This major release marks an overhaul of the entire series, moving from a primarily PDF format to a
99+ web accessible format using Markdeep (https://casual-effects.com/markdeep/ ). This represents a huge
100+ overhaul to the contents, particularly around source code blocks in the text, mathematical
101+ typesetting and source-code cleanup.
71102
72- v2.0.0 (2019-10-07)
73- --------------------
74- Common
103+ ### Common
104+ - Change: Moved existing _ InOneWeekend _ , _ TheNextWeek _ , _ TheRestOfYourLife _ content to io repo
105+ - Change: Rewrote vec3.h ` cross ` function for clarity
75106- New: General release to web
76107- New: Created single monolithic raytracing.github.io repo
77108- New: License change to CC0 in COPYING.txt
78- - Delete: Deprecated existing _ InOneWeekend_ , _ TheNextWeek_ , _ TheRestOfYourLife_ repos
79- - Change: Moved existing _ InOneWeekend_ , _ TheNextWeek_ , _ TheRestOfYourLife_ content to io repo
80- - Add: CHANGELOG.md
81- - Add: CONTRIBUTING.md
82- - Add: COPYING.txt
83- - Add: README.md
84- - Add: raytracing.github.io links to all the three books
85- - Add: CSS for all books
86- - Add: CSS for the print variant of the books
109+ - New: CHANGELOG.md
110+ - New: CONTRIBUTING.md
111+ - New: COPYING.txt
112+ - New: README.md
113+ - New: raytracing.github.io links to all the three books
114+ - New: CSS for all books
115+ - New: CSS for the print variant of the books
87116- Fix: All instances of ` hitable ` have become ` hittable `
88117- Fix: Replaced ` drand48() ` with portable ` random_double ` number generation
89- - Change: Rewrote vec3.h ` cross ` function for clarity
90-
118+ - Delete: Deprecated existing _ InOneWeekend_ , _ TheNextWeek_ , _ TheRestOfYourLife_ repos
91119
92- _ Ray Tracing in One Weekend_
93- - Fix: Text, Chapter 7, Add ` #include "random.h" ` in code blocks
94- - Fix: Text, Chapter 10, Added metal fuzziness parameter for initial dielectric
95- - Fix: Text, Chapter 13, Added metal fuzziness parameter
96- - Fix: Code, Removed extraneous ` ; ` from ` vec3::&operator[] ` signature
97- - New: Markdeep page created for entire body of text
98- - New: Markdeep MathJax for formulae and equations for body of text
99- - New: raytracing.github.io/books/RayTracingInOneWeekend.html
120+ ### _ In One Weekend_
100121- Change: README files updated for top level, source, and books
101122- Change: Text, Chapter 0 Overview has become Chapter 1, all subsequent chapters incremented
102123- Change: Text, Syntax highlighting of source modifications
@@ -113,20 +134,16 @@ _Ray Tracing in One Weekend_
113134- Change: Text, Chapter 10, Put function signatures and ` { ` on the same line
114135- Change: Text, Chapter 11, Consistent use of spaces in code blocks
115136- Change: Text, Chapter 13, Put function signatures and ` { ` on the same line
137+ - New: Markdeep page created for entire body of text
138+ - New: Markdeep MathJax for formulae and equations for body of text
139+ - New: raytracing.github.io/books/RayTracingInOneWeekend.html
140+ - Fix: Text, Chapter 7, Add ` #include "random.h" ` in code blocks
141+ - Fix: Text, Chapter 10, Added metal fuzziness parameter for initial dielectric
142+ - Fix: Text, Chapter 13, Added metal fuzziness parameter
143+ - Fix: Code, Removed extraneous ` ; ` from ` vec3::&operator[] ` signature
116144- Delete: Code, ` vec3 p = r.point_at_parameter(2.0); ` in main.cc
117145
118-
119- _ Ray Tracing: The Next Week_
120- - Fix: Text, Chapter 2, The ` lambertian ` class definition now uses ` vec3 ` instead of ` texture `
121- - Fix: Text, Chapter 7, Changed ` cornell_box ` hittable array size to 5
122- - Fix: Code and Text, Chapter 3, Changed ` List[0] ` to ` List[i] ` in ` hittable_list::bounding_box() `
123- - Fix: Code and Text, Chapter 3, Replaced ` fmax ` and ` fmin ` with ` ffmax ` and ` ffmin `
124- - Fix: Code, Add missing headers to ` constant_medium.h ` to fix g++ compiler error
125- - New: raytracing.github.io/books/RayTracingTheNextWeek.html
126- - Add: README.md, source README.md
127- - Add: Markdeep page created for entire body of text
128- - Add: Markdeep MathJax created for formulae and equations for body of text
129- - Add: Earth map picture for use in rendering
146+ ### _ The Next Week_
130147- Change: Text, Chapter 0 Overview has become Chapter 1, all subsequent chapters incremented
131148- Change: Text, Syntax highlighting of source modifications
132149- Change: Text, Chapter 2, Consistent use of spaces in code blocks
@@ -141,18 +158,18 @@ _Ray Tracing: The Next Week_
141158- Change: Text, Chapter 10, Consistent use of spaces in code blocks
142159- Change: Code and Text, Chapter 9, cleaned up implementation of ` constant_medium::hit `
143160- Change: Code and Text, Chapter 9, Rewrote debug functionality in ` constant_medium::hit `
161+ - New: raytracing.github.io/books/RayTracingTheNextWeek.html
162+ - New: README.md, source README.md
163+ - New: Markdeep page created for entire body of text
164+ - New: Markdeep MathJax created for formulae and equations for body of text
165+ - New: Earth map picture for use in rendering
166+ - Fix: Text, Chapter 2, The ` lambertian ` class definition now uses ` vec3 ` instead of ` texture `
167+ - Fix: Text, Chapter 7, Changed ` cornell_box ` hittable array size to 5
168+ - Fix: Code and Text, Chapter 3, Changed ` List[0] ` to ` List[i] ` in ` hittable_list::bounding_box() `
169+ - Fix: Code and Text, Chapter 3, Replaced ` fmax ` and ` fmin ` with ` ffmax ` and ` ffmin `
170+ - Fix: Code, Add missing headers to ` constant_medium.h ` to fix g++ compiler error
144171
145-
146- _ Ray Tracing: The Rest of Your Life_
147- - Fix: Text, Chapter order starting from chapter 2
148- - Fix: Text, Renamed figures and images to match new chapter numbering
149- - Fix: Text, Chapter 4, Rewrote formula for "Color" to "Color = A * color(direction"
150- - Fix: Code and Text, Chapter 6, ` material::scattering_pdf ` now returns type float
151- - Fix: Code and Text, Chapter 6, removal of factor of 2 to ` random_cosine_direction ` calculation
152- - New: raytracing.github.io/books/RayTracingTheRestOfYourLife.html
153- - Add: README.md, source README.md
154- - Add: Markdeep page created for entire body of text
155- - Add: Markdeep MathJax created for formulae and equations for body of text
172+ ### _ The Rest of Your Life_
156173- Change: Text, Chapter 0 Overview has become Chapter 1, all subsequent chapters incremented
157174- Change: Text, Syntax highlighting of source modifications
158175- Change: Text, Chapter 2, Reorder include files in code blocks to match src conventions
@@ -161,25 +178,31 @@ _Ray Tracing: The Rest of Your Life_
161178- Change: Text, Chapter 6, Consistent use of spaces in code blocks
162179- Change: Text, Chapter 8, Changed calculation of ` a ` axis to pseudocode
163180- Change: Text, Chapter 8, Consistent use of spaces in code blocks
181+ - New: raytracing.github.io/books/RayTracingTheRestOfYourLife.html
182+ - New: README.md, source README.md
183+ - New: Markdeep page created for entire body of text
184+ - New: Markdeep MathJax created for formulae and equations for body of text
185+ - Fix: Text, Chapter order starting from chapter 2
186+ - Fix: Text, Renamed figures and images to match new chapter numbering
187+ - Fix: Text, Chapter 4, Rewrote formula for "Color" to "Color = A * color(direction"
188+ - Fix: Code and Text, Chapter 6, ` material::scattering_pdf ` now returns type float
189+ - Fix: Code and Text, Chapter 6, removal of factor of 2 to ` random_cosine_direction ` calculation
190+
164191
192+ ----------------------------------------------------------------------------------------------------
193+ # v1.123.0 (2018-08-26)
165194
166- v1.123.0 (2018-08-26)
167- -----------------------
168- _ Ray Tracing: The Rest of Your Life_
169- - New: First GitHub release.
195+ - New: First GitHub release of _ Ray Tracing: The Rest of Your Life_ .
170196
171197
172- v1.54.0 (2018-08-26)
173- ----------------------
174- _ Ray Tracing in One Weekend_
175- - New: First GitHub release.
198+ ----------------------------------------------------------------------------------------------------
199+ # v1.54.0 (2018-08-26)
176200
201+ - New: First GitHub release of _ Ray Tracing in One Weekend_ .
177202
178- v1.42.0 (2018-08-26)
179- ----------------------
180- _ Ray Tracing: The Next Week_
181- - New: First GitHub release.
182203
204+ ----------------------------------------------------------------------------------------------------
205+ # v1.42.0 (2018-08-26)
183206
207+ - New: First GitHub release of _ Ray Tracing: The Next Week_ .
184208
185- [ #195 ] : https://github.com/raytracing/raytracing.github.io/issues/#195
0 commit comments