Physically Based Rendering

Project Description

This project is an introduction to realistic computer graphics keeping in mind the physical properties of light and surfaces. Various models of lighting are discussed, various methods of numerical integration are presented, analysed and compared, finally resulting in a ray-tracing renderer built on a simplified version of the principles of actual modern renderers like Cycles or RenderMan.

Mentors

  • Mayant Mukul

Learning Roadmap

1) Introduction, motivation, what is rendering, what is ray tracing, scope of the project
2) The rendering equation, radiometry, energy conservation, BRDFs
3) Color spaces, digital representation of color, RGB values
4) Cameras, ray-scene intersection, diffuse and specular reflections, naive recursive ray tracing
5) Numerical integration, quadrature rules, solving the rendering equation
6) Error analysis and rate of convergence, the struggles of solving higher-dimensional integrals with quadrature rules, motivating other methods of numerical integration
7) Probability refresher, Monte Carlo integration, sampling techniques, error analysis and verifying suitability for our purposes, applying it to our naive recursive ray tracer
8) Motivating a path-based formulation of the problem, verifying the convergence of our path-based estimator, extending our renderer to support path tracing
9) Implementing and comparing various sampling techniques and BRDFs

Resources

1) Physically-Based Rendering: From Theory to Implementation
2) Ray Tracing in One Weekend
3) Robust Monte Carlo Methods for Light Transport Simulation
4) The Rendering Equation
5) Weekly meeting notes
6) Git repository for optional weekly tasks