CABBAGE_BLAMEMIA_ZHANGSCOTTY3D_COMPUTER_GRAPHICSWORKS     ABOUT

Scotty3D


Course: 15-662 Computer Graphics

Scotty3D is a graphics software suite developed for 15-462 Computer Graphics at Carnegie Mellon University. It features modules for software rasterization, interactive mesh editing, realistic path tracing, and dynamic animation. Students are tasked with implementing core functionalities in each of these areas as their semester-long project.

GITHUB

 

As part of the course, I developed the following features:

Rasterizer: Implemented transformations, triangle rendering, depth blending, interpolation, mip-mapping for texture anti-aliasing, and supersampling.
Mesh Editing: Implemented half-edge mesh data structures, edge flip and split, face extrusion, triangulation, linear subdivision, Catmull-Clark subdivision, Isotropic Remeshing.
Dynamic Animation: Implemented spline interpolation for smooth keyframe transitions, skeletal kinematics for joint transformations, and linear-blend skinning for mesh-skeleton binding. 
Realistic Rendering: Implemented camera ray generation, ray-primitive intersection, and BVH that accelerats ray-scene intersection, along with path tracing, material shading, and direct and environment lighting.
Physics-Based Simulation

Rasterizer
Transforms



Line, Triangle Rasterization & Depth Testing




Triangle Interpolation



Supersampling




Mesh Edit
Local Edit
Global Edit






Path Tracing
BVH

1. Bounding Box Calculation & Intersection

2. Surface Area Heuristic for BVH Construction

3. Ray-BVH Intersection using recursion


Global Illumination & Path Tracing

Implemented Lambertian BSDF, indirect and direct lighting estimation, and next-event estimation by splitting samples between BSDF scattering and area lights. Integrated mixture sampling and multiple-importance sampling to reduce variance, leveraging Monte Carlo estimation for accurate global illumination.



Materials & Specular Reflection/Refraction


Environment Lighting & Importance Sampling





Animation
Inverse Kinematics

Implemented forward kinematics with hierarchical bone transformations for bind and pose space computation. Applied inverse kinematics (IK) using gradient descent and partial derivatives of transformation matrices to adjust joint rotations and reach target positions