# Review: The Ray Tracer Challenge

**URL:** <https://forum.devtalk.com/t/review-the-ray-tracer-challenge/196048>\
**Category:** Reviews\
**Tags:** book-the-ray-tracer-challenge, review\
**Created:** [22 April 2025 19:23 UTC](https://forum.devtalk.com/t/review-the-ray-tracer-challenge/196048 "2025-04-22T19:23:00Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![joseph-grosso](https://forum.devtalk.com/user_avatar/forum.devtalk.com/joseph-grosso/32/7346_2.png) [@joseph-grosso](https://forum.devtalk.com/u/joseph-grosso)\
**Post date:** [22 April 2025 19:23 UTC](https://forum.devtalk.com/t/review-the-ray-tracer-challenge/196048/1 "2025-04-22T19:23:00Z")

</div>

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:

> **[GitHub - joseph-grosso/ray-tracer-challenge: My C++ implementation of the Ray Tracer Challenge.](https://github.com/joseph-grosso/ray-tracer-challenge)**
>
> My C++ implementation of the Ray Tracer Challenge.

Medium Article:

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

---

<div class="post-metadata">

**Author:** ![jamis](https://forum.devtalk.com/user_avatar/forum.devtalk.com/jamis/32/1083_2.png) [@jamis](https://forum.devtalk.com/u/jamis)\
**Post date:** [23 April 2025 14:04 UTC](https://forum.devtalk.com/t/review-the-ray-tracer-challenge/196048/2 "2025-04-23T14:04:54Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![jenny](https://forum.devtalk.com/user_avatar/forum.devtalk.com/jenny/32/7362_2.png) [@jenny](https://forum.devtalk.com/u/jenny)\
**Post date:** [29 April 2025 04:08 UTC](https://forum.devtalk.com/t/review-the-ray-tracer-challenge/196048/3 "2025-04-29T04:08:12Z")

</div>

Congrats on finishing the book! 🎉 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!
