I had a really fun time going through the ray tracer challenge recently! It really is an amazing introduction to ray tracing
I've since moved on to the pbr book[0] and finding myself getting much more lost in the math. I'm doing my best to brush up and/or learn all of it, but it's a bit daunting.
It's really telling how reassuring the tests are in the RTC. Right now I can re-implement something from the pbr-book, but I can't really say if I got it right other than by doing a render (and even then, it can be hard to tell).
My plan is to at least go through and write my own tests by doing the math by hand and trying to verify my implementations.
I really wish there were some intermediary book between the two.
I wholeheartedly agree with you. The tests do help a lot.
Funnily enough, I own PBR too (it's in my reading queue), and, having skimmed through it, it seems math heavy. I think I'll leave it for last. My current queue is:
- RTC (for fun),
- 3d Math primer for Graphics and Game Dev by Dunn (to solidify the math part)
- Foundations of Game Engine Dev - Mathematics, by Lengyel (because when it comes to math, overkill is underrated)
- CGPP (to get the basics down)
... not sure about the order for my other books, but then...
- OpenGL SuperBible (second time around, sadly)
- Real-Time Rendering
- PBR
For the math books, I was thinking to do the same thing as you: do the math by hand, and then translate them into tests.
I tried using the SuperBible in order to learn OpenGL a few years back, but it always seems to be a bit too dense for my taste. Since OpenGL itself is an API specification and usually you would learn the basics of 3D graphics before delving into it, I recommend using the fantastic Learn OpenGL site (https://learnopengl.com). It goes through the basics of OpenGL from ground-up and touches on more advanced techniques, such as shadow mapping and deferred shading. It is a fantastic site and a great resource for learning the API.
Well, there is the book "Ray Tracing from the Ground Up" [1], which although a bit outdated (stemming from 2007), gives in-depth discussions on many of the topics. The author discusses possible pitfalls on the way as well. There are a few chapters, which are still math-heavy (the ones discussing the principles of stochastic ray tracing, a.k.a. Monte Carlo ray tracing).
A helpful resource for me, personally, was the educational ray tracer "Nori" [2], which came with 5 assignments covering fundamentals of a ray-tracing system (intersection acceleration, Monte Carlo sampling, basic and advanced integrators, BRDFs, even microfacet material models). Assignments gave hints on how to integrate those features in the ray tracer, plus they provided ways to validate ray-traced results. Currently, the assignments are removed from the Nori's website, but one can find them using the Wayback Machine.
I've since moved on to the pbr book[0] and finding myself getting much more lost in the math. I'm doing my best to brush up and/or learn all of it, but it's a bit daunting.
It's really telling how reassuring the tests are in the RTC. Right now I can re-implement something from the pbr-book, but I can't really say if I got it right other than by doing a render (and even then, it can be hard to tell).
My plan is to at least go through and write my own tests by doing the math by hand and trying to verify my implementations.
I really wish there were some intermediary book between the two.
[0] http://www.pbr-book.org/