Guanlin(Terrence) Huang

Welcome, and thanks for checking out my portfolio!

ThinkBig Polymer Experience (C#, Unity3D, MSTK)

An educational augmented reality (AR) application that simulates how polymers react to being put under stress. It seeks to help students visualize how an outside force makes the polymers stretch and to learn what is actually happening to the chains of molecules inside. It is accomplished through a facsimile of a polymer that the student can interact with using the device’s gesture controls, pulling until the point of fracture. We also have real-time stress-strain curve graphs for the deformation of the polymer, and eye tracking data to record students' focus behaviors for instructors to improve their teaching styles.

Vulkan Grass Rendering (Vulkan, C++)

This project uses Vulkan to simulate and render grass in real-time based on the following paper: Responsive Real-Time Rendering for General 3D Scenes.

CUDA Path Tracer Using Nvidia GPU (CUDA, C++)

Implemented Ideal Diffuse, perfectly specular-reflective, physically based depth-of-field, antialiasing, texture and normal mapping, arbitrary mesh loading and rendering with GLTF, path continuation/termination with stream compaction, contiguous in memory by material type, cache the first bounce intersections.

Edge-Avoiding À-Trous Wavelet Transform CUDA Denoiser Using Nvidia GPU (CUDA, C++)

Implemented the paper Edge-Avoiding À-Trous Wavelet Transform for fast Global Illumination Filtering for the path tracer above. Reduces path tracing rendering time by nearly 98% to get a promising result.

AI-Rig (Python, MEL)

Implemented as a Maya plugin, our authoring tool intends to cut down the computational cost of mesh deformations for film-quality rigs, allowing for increased interaction during animation creation and use in real-time games and apps even on mobile devices.

GPU-based Monte Carlo Path Tracer (C++ and OpenGL)

Implemented bidirectional scattering & reflectance distribution function (BSDF, BRDF) with GLSL to render photo-realistic graphics. Features: diffuse surface scattering, specular surface bounces and refracting, micro-surface (metal) scattering, HDR environment lighting.

Forward Kinematics & Inverse Kinematics Editor (C++)

FK is implemented in order to load and play the BVH animation files; and the IK solver, implemented with Limb-based IK, CCD IK, and Pseudo Inverse IK method, uses input fields to edit the position of the targets for the root joint and four end joints.

GLSL Shaders (C++ and OpenGL)

Features:
Blinn-Phong Reflection Shader (Plastic look),
Matcap Reflection Shader (using 2D texture to give the appearance of a complex materia without having to perform expensive lighting calculations),
"Iridescent Shader" (prodedurally-generated color palette based on cosine curves with different periods.),
Custom vertex deformation shader (for fun),
Post-process shaders: Greyscale and vignette shader, Gaussian Blur Shader, Sobel Filter, Fake Bloom Shader

Mini Maya (C++ and OpenGL)

Features: Obj mesh loading, Catmull Clark Subdivision, Face extrusion, Mesh Skinning with Skeleton.