Snooker Table
By Xing Xu→My final rendered piece is titled “Snooker Table”, a custom-designed scene inspired by professional snooker ball arrangements. It features polished reflections, shadows, smooth materials, and custom lighting choices to create a realistic billiard table composition.
Features Added
Below is an explicit list of enhancements beyond the base A3 requirements, along with where they appear in the code:
1. Custom Scene: Full Snooker Ball Arrangement
- Realistic snooker layout with 15 red balls and 6 color balls.
- Where:
data/creative.json(sphere objects + materials)
2. Glossy / Reflective Materials
- Polished highlights and strong specular response.
- Where:
src/blinn_phong_shading.cpp, materials increative.json
3. Snooker Table Cloth Texture (Procedural Pattern)
- I implemented a procedural texture on the table surface to resemble the directional cloth pattern found on real snooker tables.Gradient background and snooker table-like reflective floor plane.
- This texture introduces subtle wave-like variations across the green surface, simulating the brushed nap of snooker felt and improving realism compared to a flat diffuse plane.
- Where:
src/raycolor.cpp: procedural modulation of the floor shading (position-dependent intensity variation). (plane + environment lighting)data/creative.json: floor plane material definition (green cloth base color).
4. Improved Shadow Rendering
- Cleaner, more defined shadows beneath objects.
- Where:
src/raycolor.cpp(shadow ray logic)
5. Custom Camera Placement
- Camera adjusted to capture a natural snooker viewpoint.
- Where:
creative.json(“camera” section)
Acknowledgements
- CSC317 Fall 2025 Assignment 3 framework by course staff.
- ImageMagick used for
.ppm → .pngconversion and text overlay. - No external assets or copyrighted models were used.
- All custom scene creation and feature additions implemented by myself.
