top of page

CLASS PROJECTS

PBR Shader & SDF Model (OpenGL, GLSL)

                                                             

  • An OpenGL Shader with plastic/metallic BRDFs and pre-computed irradiance, based on the paper: Real Shading in Unreal 4

  • Created a raymarched Signed Distance Field model of the loot box from Overwatch, which is integrated into the PBR pipeline

image.webp

Monte Carlo Path Tracer (C++, OpenGL, GLSL)

                                                             

  • A real-time shader-based path tracer

  • Naïve, direct and full lighting integrators, with multiple importance sampling

  • Implemented a variety of material BSDFs including specular, transmissive, microfacets materials etc.

render4_edited.jpg

LSystem Maya Plugin (C++, MEL)

                                                             

  • L-System rewriting with dynamic geometric interpretation in Maya

  • Custom L-System command and LSystemNode

Mini Minecraft (C++, OpenGL, GLSL)                                               

  • A three-person group project.

  • I implemented player physics which features smooth collison detection (using ray marching) and physics-based movement.

  • I implemented texturing and texture animation for different block types.

  • I implemented distance fog, post-process shaders for water and lava, block wireframe, waterwave.

  • I implemented third-person mode with a diverse emote system achieved purely through shaders.

Untitled video - Made with Clipchamp (1).gif

Maya-Lite (C++, OpenGL, GLSL)

                                                             

  • Ray casting for mesh component selection

  • Half-edge mesh data structure operations, including splitting edge, triangulating face, extruding face and Catmull-Clark Subdivision (with semi-sharpness) for mesh smoothing 

  • Linear blend skinning deformation

  • Obj and json parser

Untitled video - Made with Clipchamp (2).gif

OpenGL Fun (C++, OpenGL, GLSL)

                                                             

  • Implemented surface shaders of various reflections and deformation.

  • Implemented post process shaders including greyscale, vignette, Gaussian blur, sobel, bloom, Worley noise warp and fish-eye.

Untitled video - Made with Clipchamp (3).gif

Rasterizer (C++, OpenGL)

                                                             

  • 2D Rasterization which includes Triangulation, Pixel Row Intersection, Z-Buffering and Barycentric Interpolation.

  • 3D Rasterization which includes perspective-correct interpolation.

  • Wireframe Rendering using Bresenham's line algorithm.

Screenshot 2023-11-20 135359.png

Scene Graph (C++, OpenGL)

                                                             

  • Tree data structure where each node is a Rotate, Translate or Scale Node that store transformation matrices and optionally, some type of geometry.

  • Created a Doraemon figure by transforming and drawing 2D polygons!

Untitled video - Made with Clipchamp (5).gif

FK/IK Editor (C++, Unity Plugin)

                                                             

  • An interactive body kinematics plugin featuring FK, Limb-based IK and CCD algorithms

PERSONAL PROJECT

Tear The Path (Unity, C#)  

璋冭妭button.png
  • A five-person group project.                          

  • A platformer game featuring players drawing their platform (lines) and expanding the play space.

  • Implemented everything except for LineRenderer.

  • A submission to Ludum Dare 54.

bottom of page