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
Brace yourself for a fun challenge: build a photorealistic 3D renderer from scratch! In just a couple of weeks, build a ray tracer that r...
New
DevotionGeo
I know that -t flag is used along with -i flag for getting an interactive shell. But I cannot digest what the man page for docker run com...
New
PragmaticBookshelf
Author Spotlight Rebecca Skinner @RebeccaSkinner Welcome to our latest author spotlight, where we sit down with Rebecca Skinner, auth...
New
husaindevelop
Inside our android webview app, we are trying to paste the copied content from another app eg (notes) using navigator.clipboard.readtext ...
New
PragmaticBookshelf
Author Spotlight: VM Brasseur @vmbrasseur We have a treat for you today! We turn the spotlight onto Open Source as we sit down with V...
New
PragmaticBookshelf
Author Spotlight: Peter Ullrich @PJUllrich Data is at the core of every business, but it is useless if nobody can access and analyze ...
New
sir.laksmana_wenk
I’m able to do the “artistic” part of game-development; character designing/modeling, music, environment modeling, etc. However, I don’t...
New
PragmaticBookshelf
Explore the power of Ash Framework by modeling and building the domain for a real-world web application. Rebecca Le @sevenseacat and ...
New
RobertRichards
Hair Salon Games for Girls Fun Girls Hair Saloon game is mainly developed for kids. This game allows users to select virtual avatars to ...
New
PragmaticBookshelf
A concise guide to MySQL 9 database administration, covering fundamental concepts, techniques, and best practices. Neil Smyth MySQL...
New