CS184 Graphics Projects
For UC Berkeley’s CS184: Computer Graphics and Imaging course, I worked on implementing a 2d rasterizer, 3d Bezier curves and surfaces, algorithms to manipulate half-edge meshes, mesh up-sampling by loop subdivision, ray-tracing renderers for various materials, and a clothing simulation mod for Minecraft.
Projects
2D Rasterizer
In this project, I implemented a simple 2d rasterizer that rasterizes mathematical expressions for shapes into pixel image buffers the implemented features include supersampling, hierarchical transforms, and texture(uv) mapping with antialiasing. The above image was rendered using my program.
Here’s a link to the project report
MeshEdit
In this project, I built Bezier curves and surfaces using de Casteljau’s algorithm, implemented algorithms to manipulate half-edge meshes, and implemented mesh up-sampling using loop subdivision.
Here’s a link to the project report
Pathtracer-1
In this project, I implemented a CPU-based ray-traced renderer that can render complex scenes with multiple light sources and complex materials. The above image was rendered using my program.
Here’s a link to the project report
Pathtracer-2
In this project, I further extended Pathtracer-1 to support Microfacet(rough-surface) materials, glass materials and mirror materials.
Here’s a link to the project report
ClothSim
In this project, I wrote a physics engine that simulates clothing materials. I also implemented shaders to render the cloth (and environments) in real-time.
Here’s a link to the project report
ClothingMC
In this project, we wrote a physics-based cloak simulation mod in Minecraft. The cloak is made of cubical meshes with $32 \times 20$ by size and is simulated by a mass-spring system.