Game Development

Computer Graphics Course Project

About

This is a course project I did during Computer Graphics in CMU. In this project, I had hands-on practice on render-related topics on both 2D graphics and 3D graphics. The course has provided us skeleton code for two software, DrawSVG and Scotty3D. They provided the basic UI and functions like file IO, and I was able to focus on the graphics-related functions themselves.

The programming language for this project is C++.

Below are some demonstrations of the project:

SVG Rasterization and Anti-aliasing

(Rasterizing triangles and performing super-sampling anti aliasing)

(Rasterizing texture image and perform mipmapping)

Half-edge Structure of 3D Modeling

Linear Subdivision
Catmull-Clark Subdivision
Mesh Triangulation

(Performing various operations on object scale)

(Performing operation on vertex/edge/face scale. Available operations include move, rotate, scale, bevel and collapse/delete)

Ray-tracing

Worked on physical-based rendering algorithm for Lambert, glass and mirror material. Also supported sampling and rendering for various light source like area light and HDRI map.

Rigging and skinning

Apply rigging and skinning for half-edge structured 3D models. Also supported IKs.

All Recent Work