LJ

LJ

Computer Graphics And Rendering

Computer Graphics And Rendering

2D and 3D rendering techniques, from geometric transformations and projection to ray tracing, GPU shaders, and mesh manipulation.

2D and 3D rendering techniques, from geometric transformations and projection to ray tracing, GPU shaders, and mesh manipulation.

Year

2022

Year

2022

Year

2022

Tools

JavaScript, p5.js, GLSL

Tools

JavaScript, p5.js, GLSL

Tools

JavaScript, p5.js, GLSL

OVERVIEW

What started as an exploration of simple shapes quickly became a deep understanding of how pixels, light, and math interact. Through these projects, I developed a strong visual intuition, practiced debugging complex systems, and learned to write code that feels like animation, clean, structured, and expressive.

KEY TOPICS

  • 2D & 3D transformations

  • Projection and perspective

  • Ray tracing (shadows, reflections, lighting models)

  • Object modeling and animation

  • Shaders & GPU programming (GLSL)

  • Surface meshes and duals

  • Flat vs. smooth shading

  • Coordinate systems & matrix math

Project 1

Projection & Line Drawing 🖊️

I mapped user-defined lines onto a 2D screen using transformations, projection, and coordinate math.

Project 2

Object Modeling & Animation 🧱

I first built a vacuum cleaner from composite objects using a matrix stack to manage hierarchical transforms.

Then, I animated a full scene of vacuum cleaners moving around the floor with object motion and camera transitions.

Project 3

Ray Tracing, Shadows & Reflections 🔦

This project focused on the key concepts of ray tracing. First, I wrote a ray tracing renderer to simulate light-object interactions with cylinders and diffuse shading.

With the foundations in place, I expanded my ray tracing renderer to introduce spheres, recursive reflections, shadows, and a richer lighting model with ambient and specular components.

Project 4

GPU Programming (Shaders) 🎮

In this project, I developed a custom vertex and fragment shaders in GLSL to create animated textures and procedural effects. This was my intro to GPU-based thinking — fast, flexible, and wildly creative.

Project 5

Dual Meshes & Surface Shading 🔺

In this project, I built a tool to modify polyhedral models, generating their dual meshes and allowing toggles between flat and smooth shading. Using simple triangle bases, I was able to generate a wide variety of fun, interactive polyhedral models.

Learnings

These projects taught me how to go deeper than surface-level visuals with graphics in order to build the systems that make those visuals possible. These projects taught me so much, including

  • Debugging scenes with no output trained me to problem-solve without a UI safety net.

  • Ray tracing pushed me to reason about light, geometry, and recursive logic.

  • Shaders introduced a new level of performance-aware, creative code.

  • And overall? I learned to build things that are both technical and visual — and to trust my instinct when something looks wrong.

This work sharpened my development skills, but more than that, it taught me how to create beautiful things by understanding their structure.

Lee Lee Jiang

©2025 Lee Lee Jiang

Go Back To Top

Lee Lee Jiang

©2025 Lee Lee Jiang

Go Back To Top

Lee Lee Jiang

©2025 Lee Lee Jiang

Go Back To Top