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
- Emoji Predictor
- FAQ Bot for Freshmen
- Capturing semantic structures in Neural Machine Translation
- Automated Fiducial Localisation from MRI/CT Images
- 3D Object Reconstruction from Single Image
- Statistical Modelling of Star Maps
- Face Recognition Systems
- Competitive Coding
- Can Machines Identify Genres?
- Monte Carlo Path Tracing Renderer
- Joint Modelling of Source Code and Natural Language
- Panorama in Cam Scanner
- Front end development for FOSSEE websites
- Institute Delivery System
- Capture The Swag
- Panorama in Cam-Scanner
- Poisson Solver with Image Editing
- Blind Source Separation
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
- 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.