Advanced Ray Tracing Showcase

By Tianle Xu

This project is a significantly enhanced version of the Ray Tracing assignment (Lab 3). It demonstrates advanced rendering techniques and procedural content generation.

Features Added:

  1. Procedural Textures: Implemented a checkerboard pattern for the floor plane. This is calculated on-the-fly in the shader based on the world-space intersection point, without requiring external texture files.
    • Code Location: src/blinn_phong_shading.cpp (checkerboard logic), include/Material.h (flag).
  2. Complex Material Properties: The scene features a variety of materials including:
    • Mirror Surfaces: Highly reflective spheres using recursive ray tracing.
    • Metallic Surfaces: Gold-like material with high specular and low diffuse components.
    • Matte/Diffuse Surfaces: Standard Lambertian shading.
  3. Custom Scene Generation: Instead of loading a simple JSON file, the scene is constructed programmatically in C++ to create a specific composition of objects and lights that highlights the rendering capabilities.
  4. Text Overlay: A custom bitmap font renderer overlays the project title and course information directly onto the final image.

Acknowledgements