3D
GRAPHICS
PROGRAMMER
vk_viewer

Beginning in February of 2022, I began to take an interest in low-level GPU programming, and subsequently the Vulkan GPU API. This project is a physically-based renderer that I wrote in Rust, using Vulkan, and with the following rendering features:

  • Physically-based shading (Combined Lambertian diffuse and Cook-Torrance specular BRDFs)
  • Bloom post-processing effect based on COD:AW slides
  • Directional lighting with cascaded shadow maps
  • Bindless resource management
  • Asset loading via glTF and optimized custom format
  • Atmosphere rendering with Rayleigh and Mie scattering (raymarched)
  • Simultaneous rendering of multiple frames
vr_game_prototype

After my initial brush with 3D graphics programming, I decided that I would try to make an entire VR game from scratch. The idea is that you would have a variety of gadgets that would modify your movement and would also serve a double purpose as weapons to help you stun and collect the main objects of the game, the Totoros that run around. This was very much a VR reimagining of Ape Escape.

The game is written in Rust using the OpenGL API for 3D graphics with the following rendering features:

  • Gameplay interaction with AI agents
  • Custom collision and VR character controller implementation
  • Toon lighting from both directional and point light sources
  • HMD rendering and controller/headset tracking using OpenXR
model_viewer

This was my first ever attempting at learning 3D graphics programming. It's just a bunch of instanced trees, grass billboards, a ground plane modified by a noise function, horrible shadow mapping, and a cubemap skybox. It also even integrates the OpenVR API for VR support. I'm proud of what I was able to accomplish while knowing so little.

The program was written in Rust with the OpenGL API