Projects

vulkan_path_tracer

Vulkan Path-Tracer

A simple path-tracer written in C++ and GLSL that features both software- and hardware-accelerated ray-tracing, utilizing Vulkan’s ray-tracing extensions. This project began as an effort to learn how to construct and optimize Bounding Volume Hierarchies (BVH) using Surface Area Heuristics (SAH) to enhance ray-tracing performance. Initially, it was only a software path tracer but later evolved into a sandbox for experimenting with Vulkan ray-tracing. View on GitHub


hobby_engine

Hobby Rendering Engine (DXR-Project)

This is a personal rendering and game engine created to test and experiment with a variety of rendering techniques. Initially conceived as a small project for learning DirectX Raytracing (DXR) and experimenting with this, at the time, new API, it has grown into a larger project over the years. It now features both DirectX 12 (D3D12) and Vulkan backends. The project focuses on abstracting graphics APIs, exploring game engine architecture, and implementing advanced rendering techniques. View on GitHub


Large Game Project

Crazy Canvas is a Capture-the-Flag First-Person Shooter (FPS) with a twist: all enemies are invisible. Players are equipped with paint guns that can color everything in the world, including enemy players. By observing reflective surfaces like mirrors, players can spot their opponents and take the shot. When an enemy is covered in enough paint, they are eliminated.

This project was developed from scratch in a group over 14 weeks during university. The game is written in C++ and GLSL and uses Vulkan as the graphics API. I worked on much of the core engine as well as various rendering techniques, including mesh-shaders using meshlets, different anti-aliasing techniques such as Temporal Anti-Aliasing (TAA) and Fast Approximate Anti-Aliasing (FXAA), and more.

View on GitHub