Implement realistic rendering in C++ ray tracing with antialiasing, diffuse and reflective materials, glass refraction, and gamma-corrected lighting.
Overview
Syllabus
- Unit 1: Antialiasing with Supersampling
- Observing Monte Carlo Sampling Convergence
- Implementing Grid Based Supersampling Pattern
- Breaking Pixel Boundaries with Improper Sampling
- Adaptive Sampling for Efficient Ray Tracing
- Unit 2: Lambertian Diffuse Materials
- Experimenting with Color Bleeding Effects
- Understanding Ray Bounce Depth Effects
- Multi Ray Sampling for Diffuse Materials
- Measuring Path Tracer Performance with Timing
- Probabilistic Ray Termination with Russian Roulette
- Unit 3: Fixing Rendering Artifacts
- Eliminating Shadow Acne with Epsilon Offset
- Comparing Shadow Acne Across Epsilon Values
- Implementing Gamma Correction for Brightness
- Comparing Gamma Values in Ray Tracing
- Unit 4: Metal Surfaces and Reflection
- Adding Your First Metal Sphere
- Building a Metal Sphere Showcase Scene
- Debugging Extreme Metal Surface Roughness
- Creating a Random Material Mixer
- Unit 5: Rendering Glass and Refraction
- Adding Glass Spheres to Your Scene
- Comparing Hollow and Solid Glass Spheres
- Exploring Materials with Different Refractive Indices
- Removing Total Internal Reflection Guard
- Weighted Material Selection with Composite Class