Seasons Of Code
Monte Carlo Path Tracing Renderer • Kumar Ayush
WnCC - Seasons of Code
Seasons of Code is a programme launched by WnCC along the lines of the Google Summer of Code. It provides one with an opprtunity to learn and participate in a variety of interesting projects under the mentorship of the very best in our institute.
List of Projects
Monte Carlo Path Tracing Renderer
This internship involves the implementation of a Monte Carlo Path Tracer.
Monte Carlo Path Tracing Renderer
“In this project, you will implement a Monte Carlo Path Tracer. A path tracer is a kind of renderer in computer graphics. A renderer is responsible for generating the image or the graphics that you see on your screen. Even this text that you are reading is displayed via a font renderer. Path tracers are often used for photorealistic rendering, which means generating an image indistinguishable from a photograph. At the end of the project, you can expect to have a code capable of producing such images.
As a primer, you should read Andrew Glassner’s Introduction to Ray Tracing
Pre-requisites
- At least two years of experience with CPP, awareness of gcc and make
- A basic course on DSA
Tentative Project Timeline
I expect about 100 hours of work spread over ten weeks.
Week Number | Tasks to be Completed |
---|---|
Week 1 | Read the book |
Week 2 | Write an XML parser. This is the submodule that reads the scene. |
Week 3 | Write the skeleton of the graphics pipeline. This involves implementing coordinate transformations |
Week 4 | Implement the Ray and Object class. Most of the Path Tracing routine can be summarised as measuring intersection of instances of Ray class with instances of the Object class. |
Week 5 | Implement Direct Lighting and Whitted Ray Tracing |
Week 6 | Implement Recursive Rays to capture higher order light paths |
Week 7 | Debugging buffer & Implement Jittering and Supersampling |
Week 8 | Monte Carlo enters. Learn Sampling. Implement Diffuse Sampling and Area lights. Effects like soft shadows and colour bleeding start to appear |
Week 9 | Debugging Buffer |
Week 10 | Documentation, Generating Scenes, Videos |
Secondary Learning Goals
Apart from learning about path tracers and rendering, you can expect to learn about the following:
- Monte Carlo Sampling
- Basics of ImageMagick
- OpenMP Parallelization.