Among Us Gathering
By Jaehyeon Heo→I have augmented the ray tracing assignment to render a scene featuring multiple “Among Us” characters gathered on a planetary surface.
Features Added:
- Procedural Scene Generation: Created a C++ program (
src/generate_scene.cpp) to procedurally generate a complex scene (src/creative.json) containing:- 12 “Among Us” characters placed in a circle/gathering formation.
- Each character is composed of multiple spheres (body, visor, legs, backpack) and rotated to face towards the camera with some random variation.
- Randomized colors for the characters.
- A scattered field of “rocks” (small spheres) on the ground.
- A starry background with distant emissive spheres.
- Text Overlay: Implemented a custom text overlay system in C++ (
include/text_overlay.h) to draw the piece name, author name, and course info directly onto the rendered image. This removes the need for external post-processing tools.- Implemented a simple 5x7 bitmap font.
- Added
draw_textfunction to rasterize text onto the image buffer. - Integrated into
main.cppto add the required overlay.
- Scene Composition:
- Modified
main.cppto use the generatedcreative.jsonand output topiece.ppm. - The scene features a dark, space-like atmosphere with multiple light sources (key light, fill light, and back light) to enhance the 3D form of the spheres.
- Modified
E## Acknowledgements
- Base code from CSC317 Assignment 3 (Ray Tracing).
- Eigen library for linear algebra.
- “Among Us” character design inspired by Innersloth.
