Build scenes in C++: add spheres, compute ray–sphere hits, shade with normals, manage multiple objects via a hittable interface, and introduce a camera and utilities for clean code.
Overview
Syllabus
- Unit 1: Ray Sphere Intersection
- Sphere Intersection Quiz
- Exploring Sphere Position and Size
- Debugging the Sphere Intersection Algorithm
- Visualizing Ray Path Through Sphere
- Unit 2: Shading with Surface Normals
- Adjusting Brightness in Normal Shading
- Grayscale Shading with Single Normal Component
- Rendering Multiple Spheres with Normal Shading
- Alternative Normal Visualization with Absolute Values
- Unit 3: Scenes and Closest Hits
- Orienting Surface Normals for Ray Tracing
- Validating Intersection Ranges in Ray Tracing
- Adding Multiple Spheres to Your Scene
- Fixing Occlusion in Multi Object Scenes
- Building a Multi Sphere Scene
- Unit 4: Building Extensible Ray Tracer
- Creating the Abstract Hittable Interface
- Implementing the Sphere Class
- Building the Scene Container Class
- Unit 5: Camera Abstraction and Ray Generation
- Debug the Camera Ray Generator
- Adding Customizable Focal Length to Camera
- Rendering Multiple Camera Views Simultaneously
- Implement Camera Auto Centering Function
- Randomize Rays Within Pixel Boundaries
- Unit 6: Reusable Math Utilities
- Creating Your First Constants Header
- Building Math Utilities for Angle Conversion
- Building Random Number Generation Utilities
- Extending Vectors with Random Utilities