Summary
Overview
Work history
Education
Skills
Languages
Portfolios
Timeline
Generic

Zhengnan Shi

Leeds

Summary

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.

Overview

1
1
year of professional experience
5
5
years of post-secondary education

Work history

Msc Student

University of Leeds
Leeds
09.2022 - 12.2023
  • Raytracing

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.

  • LeedsGL (Rendering Pipeline)

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.

  • Inverse Kinematics

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.

  • Cloth Simulation

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.

  • Manifold Testing

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.

  • Loop Subdivision

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.

  • Texture & Normal Map Synthesis

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.

  • Vulkan Infrastructure and Debugging/Analysis

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.

  • Physically Based Rendering with Vulkan

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.

  • Render-To-Texture and PostProcessing with Vulkan

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.

  • Group Project: Sparrow Engine

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.

Education

Master of Science - High Performance Graphics and Games Engineering

University of Leeds
Leeds
09.2022 - 12.2023

Bachelor of Science - Software Engineering

Taiyuan University of Technology
China
09.2018 - 06.2022

Skills

  • C
  • Vulkan API
  • Unreal Engine
  • Geometric Processing
  • Animation and Simulation
  • Rendering
  • Machine Learning
  • Java
  • Python
  • Team Work

Languages

Chinese (Mandarin)
Native
English
Advanced

Portfolios

https://github.com/NANAnoo/Sparrow?tab=readme-ov-file

Timeline

Msc Student

University of Leeds
09.2022 - 12.2023

Master of Science - High Performance Graphics and Games Engineering

University of Leeds
09.2022 - 12.2023

Bachelor of Science - Software Engineering

Taiyuan University of Technology
09.2018 - 06.2022
Zhengnan Shi