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:
- 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).
- Code Location:
- 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.
- 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.
- Text Overlay: A custom bitmap font renderer overlays the project title and course information directly onto the final image.
Acknowledgements
- Base Code: CSC317 Lab 3 (Ray Tracing) starter code.
- Libraries:
Eigen: For linear algebra operations.json: For parsing scene files (included in base code).
- Font: A custom 5x7 bitmap font implementation was created for the text overlay.
