Passionate Computer Graphics student eager to bring theoretical knowledge to practical game development. Known for a strong work ethic, teamwork, and a commitment to learning, I aim to contribute significantly to innovative game engine projects. Excited to blend academic insights with a fervent interest in creating immersive gaming experiences.
Independently implemented fundamental ray tracing algorithms using C++ on an existing renderer. Tasks included triangle intersection, interpolation, Phong Shading, shadows, reflection, refraction, Fresnel effect, and Monte Carlo path tracing.
Solely responsible for implementing the underlying logic of a graphical rendering pipeline using C++. This included space transformations from vertices to primitives, clipping, shading, depth testing, and parallel acceleration using multithreading.
Developed an efficient Inverse Kinematics (IK) system using C++, combined with OpenGL API for rendering results. Explored various solving techniques including Newton's method and the Jacobian method. Designed an intuitive user interface.
Programmed in C++ to design a cloth simulation system based on the mass-spring system principle. Aimed to simulate the physical properties of fabric, including stretching, bending, gravity effects, and interactions with other objects for realistic cloth animation.
Implemented an algorithm in C++ with O(n^2) complexity to analyze geometric information of models, such as vertices, edges, and faces, to determine if a geometric body is a manifold. Used Euler's formula to calculate the genus of the model.
Conducted research on the working principles of LOOP subdivision algorithms, including subdivision rules and mathematical foundations. Implemented 10 levels of geometric model subdivision using C++ and added UI controls for simplified tool usage.
Used C++ to implement Floater's algorithm on a 3D model with vertex colours but lacking texture coordinates. The goal was to generate texture coordinates for realistic texture mapping and to create normal maps. Employed Floater's algorithm, an iterative method for accurate texture coordinate generation.
Programmed in C++ & Vulkan API to build a small renderer based on Vulkan. Tasks included setting up the basic Vulkan rendering environment, creating Vulkan instances, physical and logical devices, and setting up key components like swap chains for correct pipeline setup and launch. Also involved loading and rendering multiple textured objects, implementing anisotropic filtering, and visualizing mipmap levels.
Utilized C++ & Vulkan API with a focus on understanding and applying principles of PBR (Physically Based Rendering) shading techniques. Included reflectance, roughness, metallicity, and environmental mapping to support PBR shading in the renderer, ensuring physically accurate light-material interactions. Also implemented Alpha Blending and normal mapping to achieve transparency and semi-transparency effects and to enhance surface details of rendered objects.
Developed an advanced rendering engine using Vulkan API that supports rendering results to textures and applying post-processing techniques such as Tone Mapping and Bloom. Introduced Tone Mapping to adjust the brightness and contrast of rendered results for realistic display on screens, and Bloom to simulate the "glow" effect in lighting, involving extracting bright areas and applying Gaussian blur to simulate the bloom effect.
Participated in a group project focused on control systems and UI development. The team used C++ to recreate basic components of a game engine, including rendering, physics, animation, and UI controls. This project provided an introductory understanding of game engine design components and enhanced collaboration skills in multi-person projects.
https://github.com/NANAnoo/Sparrow?tab=readme-ov-file