This post is meant for newbies.
Basically, your code should be highly modular, consisting of well-designed classes and functions. Then, unit test each module. This is much easier than trying to debug a large system, or a monolithic piece of code.
I debug almost entirely based on intuition, and never relied on any low level tools like tracers, even when I was a beginner.
For the ray tracing exercise, if you start with the Shirley series, the code should already be modular and incremental. After you finish that, you should have better foundation to design modular code for the ray tracing book by Glassner et al.
Feel free to ask specific questions (e.g. via the comments field of this post), and I will answer by updating and improving this post.
Leave a Reply