Scotty3D
This 3D graphics software implements interactive mesh editing, realistic path tracing, and dynamic animation.
Implementing the functionality of the program constitutes the majority of the coursework for 15-462/662 Computer Graphics at Carnegie Mellon University.
Mesh Editing
We implemented several local and global mesh operations. The local operations include flip, collapse, split and bevel. The global operations include simplification, subdivision and triangulation.
During the process of implementing these operations, I had a deeper understanding of both the algorithms and the operations themselves. I also realized some issues may be caused by specific operation like beveling may cause coincide vertexes.
After implementing the functionalities, we also applied this engine to build our own models.
Path Tracing
I implemented rendering equation and Monte Carlo integration to render life real images.
Meanwhile, I implemented BVH structure to speed up collision detection and importance sampling the environment map to render skybox and global illumination.
Animation
I implemented basic rigging operations like creating the joints, saving key frames using these joints and interpolating the animation with these frames.
Besides, I also implemented inverse kinematics and physical simulation, which introduced me to more practical and advanced topics.