raytracing.github.io icon indicating copy to clipboard operation
raytracing.github.io copied to clipboard

Listing 3.28: changes in `scatter()` argument list

Open genmeblog opened this issue 2 years ago • 2 comments

When ONB is introduced in Ch. 8.3, scatter function has different function contract (double& pdf is added at the end). Which clashes with Listing 22. Looks like remainings from V.3.

However with the new pdf calculations in Listing 29 it's not clear what scattering_pdf should be at this stage. The previous change is in Listing 23 where scattering_pdf returns a constant 1/(2*pi).

genmeblog avatar May 04 '22 21:05 genmeblog

General observation: starting from Chapter 6 and 8 it is hard to follow the changes in the code.

genmeblog avatar May 04 '22 21:05 genmeblog

Will soon be listing 28 ("Scatter function, with orthonormal basis"). At this point, the wheels kind of fall off: we update the lambertian::scatter() function signature, but neglect showing the corresponding base-class virtual function signature change. In addition, we don't show the corresponding changes to the remaining materials (metal, dielectric, diffuse_light, isotropic), nor to the material::scatter() call in camera::ray_color().

I'm halfway through the preliminary v4.0.0 book3 progression, and I've fixed some of this, but not all.

hollasch avatar Mar 27 '24 02:03 hollasch