Main Web Site (Online Books)
This minor upgrade adds some fixes and changes that are a bit more than just patches. The text now
has subchapter headings to help readers browse content and get a bit more context. We're introducing
new type aliases point3
and color
for vec3
to better indicate the underlying mathematical
types of parameters and variables. Overall, a bunch of small improvements that we'd recommend
adopting, but may warrant comparison with any current projects.
aarect
in the zero dimension (#488)point3
and color
type aliases for vec3
(#422)constant_texture
to solid_color
, add RGB constructor (#452)vec3::write_color()
method to utility function in color.h
header (#502)ffmin
/ffmax
to standard fmin
/fmax
(#444, #491)t
parameter back into hit_record
at correct placeimage_texture
class. Now handles image loading too. (#434)This major release marks an overhaul of the entire series, moving from a primarily PDF format to a web accessible format using Markdeep (https://casual-effects.com/markdeep/). This represents a huge overhaul to the contents, particularly around source code blocks in the text, mathematical typesetting and source-code cleanup.
cross
function for clarityhitable
have become hittable
drand48()
with portable random_double
number generationvec3
class functions to + - * /{
on the same line{
on the same line{
on the same line#include "random.h"
in code blocks;
from vec3::&operator[]
signaturevec3 p = r.point_at_parameter(2.0);
in main.ccif
statements to two lines for Consistencyconstant_medium::hit
constant_medium::hit
lambertian
class definition now uses vec3
instead of texture
cornell_box
hittable array size to 5List[0]
to List[i]
in hittable_list::bounding_box()
fmax
and fmin
with ffmax
and ffmin
constant_medium.h
to fix g++ compiler errora
axis to pseudocodematerial::scattering_pdf
now returns type floatrandom_cosine_direction
calculationWith the migration to a web format accomplished in v2.0.0, we immediately began work on a new major release: v3.0.0. This release tackles the following key themes:
Establishing a common build system for the three projects. We chose CMake for its broad support for multiple platforms, as well as multiple build tools and IDEs. This change includes a reorganization of the project source files, and unifying a lot of code across projects.
A major upgrade of the project source code, addressing a number of large changes that we had deferred for later.
A number of larger changes to the book content, refining some approaches and ideas, and addressing some areas in the text that needed improvement.
Following this release, we expect to switch to a much more incremental approach, mostly with patch-level (fix) changes and some minor-level (addition) changes.
float
to double
(#150)std::shared_ptr
pointersnew
/delete
hittable_list
uses std::vector
plus std::shared_ptr
pointersstb_image.h
on Windowsray_color()
function now has max depth passed in, rather than hard-coding it (#143)random_in_unit_sphere()
, random_unit_vector()
, random_in_hemisphere()
to
vec3.h. Fixed places where we were using one but should have been using another. (#145)vec3
header (#153, #156, #215)ray::point_at_parameter()
renamed to ray::at()
ffmin()
, ffmax()
from aabb.h
to rtweekend.h
squared_length()
renamed to length_squared()
sphere::hit()
function.src/common
directory for code shared across bookssrc/common/rtweekend.h
vec3::write_color
- provides a robust output method for color data (#93)degrees_to_radians()
utility function (#217)random_int()
, random_double()
, and vec3::random()
utility functionsmarkdeep.min.js
for offline readingray_color()
code blocks to match current source (#391)noise_texture::value()
(#396)texture::value()
function (#399)moving_sphere::bounding_box()
(#405)p
in main() (#317)src/TheRestOfYourLife