Aggregation of Possible Next Steps - RayTracing/raytracing.github.io GitHub Wiki

Motivation

As living documents, there is always more polish and more refinement that can be achieved in the existing Ray Tracing books.

This can get in the way of expanding the series. There are unquestionably many--a seemingly uncountable number of--ways that the series can be appended, expanded, and iterated.

Looking to the future of its development, we have decided to collate all previously existing suggestions for expansion. This is an area of the book that could use some polish (another one!).

As an example, the final chapter of Ray Tracing in One Weekend is entitled "Where Next?" and contains a list of possible places to take your newly formed raytracer.

When In One Weekend was published, it existed as the sole book standing on its own. Including a list of places for exploration naturally keyed into the philosophy of the text. However, as additional books in the series were created, a problem emerged. Many of the suggestions offered at the end of In One Weekend are present in Ray Tracing: The Next Week. Some, however, are noticeably absent (specifically; shadow rays, triangles, and parallelism). In addition, The Next Week does not contain a chapter devoted to next steps, whereas Ray Tracing: The Rest of Your Life contains such a chapter.

So, we have a chapter in book 1 that contains a list of possible next steps for your raytracer (some of which is implemented in the next book). A book 2 which contains no such list. And a book 3 which contains such a list, but has no implementation for any of it.

Adding to this complexity, the books launched with a blogspot in tandem. http://in1weekend.blogspot.com/ was created with the goal of suggesting and showcasing raytracer projects that could be completed in one weekend. For every book in the series: In One Weekend, The Next Week, and The Rest of Your Life, a blog post was written that contains additional (mostly distinct) suggestions for each chapter in that book. There are dozens of ideas in these blogs, not to mention the wealth of information contained in the comments!

At present, the complexity of this collection leads the author to be unable to recommend following any of the suggestions.

The wiki contained here is an attempt to wrangle all of these suggestions into a single moldable document, with the aim of redesigning this aspect of the series.

A Summary of the Existing Data

Ray Tracing in One Weekend: Where Next?

  1. Adding lights explicitly: Sending shadow rays to lights
  2. Adding lights implicitly: Making objects emit light
    • Bias scattered rays toward lights, down-weighting those rays to cancel out the bias
    • Peter Shirley's preference (in the minority)
  3. Adding triangles
  4. Adding surface textures
  5. Adding solid textures
    • Ken Perlin's code is online
    • Andrew Kensler has more at his blog
  6. Adding Volumes and Media
    • Probabilistic intersections based on density
  7. Parallelism
    • Run N copies of code on N cores with different random seeds. Average the results

Ray Tracing: The Rest of Your Life: The Rest of Your Life

  • Explore Monte Carlo Methods
    • Bidirectional path tracing
    • Metropolis algorithm
  • Movie renderers
    • Look at papers out of studios
    • Look at papers out of Solid Angle
  • High-performance ray tracing
    • Look at papers from Intel
    • Look at papers from Nvidia
  • Hard-core Physically Based Renderers: Convert from RGB rendering to spectral rendering
    • Each ray has a unique random wavelength
  • Add a glossy BRDF model

In One Weekend Blogspot: Ray Tracing in One Weekend

http://in1weekend.blogspot.com/2016/01/ray-tracing-in-one-weekend.html

In One Weekend Blogspot: Ray Tracing: the Next Week

http://in1weekend.blogspot.com/2016/01/ray-tracing-second-weekend.html

In One Weekend Blogspot: Ray Tracing: The Rest of Your Life

http://in1weekend.blogspot.com/2016/03/ray-tracing-rest-of-your-life.html