joseph-grosso

joseph-grosso

Review: The Ray Tracer Challenge

I finished the book just last month! Super happy with the results. To celebrate I wrote an article and posted about my experience.

For a few thoughts on the book: it was great to learn ray tracing through the test-first approach. I learned a lot about both graphics and C++ programming through the process.

About optimizations and the end-of-chapter challenges: It’s worth it to make some performance optimizations earlier on in the development process, especially once you’re starting to render more complex scenes. It makes the iteration process a lot smoother. The two biggest optimizations I found were adding multithreading (straightforward because ray tracing is embarrassingly parallel) and precomputing matrix inversions. I highly recommend implementing this for your scene’s objects as that computation was by far the heaviest method, and it’s called many times per pixel.

GitHub repo:

Medium Article:

https://medium.com/@jogrosso/the-ray-tracer-challenge-learning-c-through-computer-graphics-e45a68fb7cd5

Most Liked

jamis

jamis

Author of Mazes for Programmers and 1 other title

That’s an amazing write-up. Thank you so much for trying my book, and reviewing it so well!

jenny

jenny

Congrats on finishing the book! :tada: It’s awesome to hear how much you gained from both graphics and C++ sides. Totally agree — early optimizations like multithreading and precomputing heavy operations make a massive difference. Thanks for sharing your experience!

Where Next?

Popular General Dev topics Top

Ted
I picked up Metaprogramming Elixir with the intent of reading it at a later time, once I had a bit more exposure and experience with Elix...
New
mindriot
Ok, well here are some thoughts and opinions on some of the ergonomic keyboards I have, I guess like mini review of each that I use enoug...
New
joseph-grosso
I finished the book just last month! Super happy with the results. To celebrate I wrote an article and posted about my experience. For a...
New
danilopiazza
A short and sweet book on functional programming, its advantages, and its possible uses. Suitable for beginners on FP or for experienced...
New
belgoros
I’ve been following the books "Agile Web Development with Rails " since Rails 3 version. Sure, I’ll never be grateful enough to the autho...
New

Other popular topics Top

PragmaticBookshelf
Learn from the award-winning programming series that inspired the Elixir language, and go on a step-by-step journey through the most impo...
New
PragmaticBookshelf
Write Elixir tests that you can be proud of. Dive into Elixir’s test philosophy and gain mastery over the terminology and concepts that u...
New
AstonJ
Or looking forward to? :nerd_face:
498 13326 269
New
brentjanderson
Bought the Moonlander mechanical keyboard. Cherry Brown MX switches. Arms and wrists have been hurting enough that it’s time I did someth...
New
AstonJ
Just done a fresh install of macOS Big Sur and on installing Erlang I am getting: asdf install erlang 23.1.2 Configure failed. checking ...
New
dimitarvp
Small essay with thoughts on macOS vs. Linux: I know @Exadra37 is just waiting around the corner to scream at me “I TOLD YOU SO!!!” but I...
New
PragmaticBookshelf
Build highly interactive applications without ever leaving Elixir, the way the experts do. Let LiveView take care of performance, scalabi...
New
PragmaticBookshelf
Create efficient, elegant software tests in pytest, Python's most powerful testing framework. Brian Okken @brianokken Edited by Kat...
New
Help
I am trying to crate a game for the Nintendo switch, I wanted to use Java as I am comfortable with that programming language. Can you use...
New
DevotionGeo
I have always used antique keyboards like Cherry MX 1800 or Cherry MX 8100 and almost always have modified the switches in some way, like...
New