Vulkan Projects

This is a collection of smaller projects using the Vulkan API. Here I have smaller programs that all implement a particular technique, or use some particular API from Vulkan. There include projects that setup the complete swapchain to display images on screen, setting up Vertex, Index and Staging Buffers. Also, a couple projects that use Compute Shaders to implement a Ray Tracer and save the rendered image back on an image. And more.

Code and more images available at the github repo.


Path Tracer

A Path Tracer written in Unity using compute shaders. Includes Monte Carlo integration of the rendering equation, lambert diffuse and phong specular reflectance, temporal anti-aliasing, importance sampling, objects with different materials (diffuse, specular, emissive, smooth), etc.

Code and more images available at the github repo.


Ray Tracer

A Ray Tracer engine written from the ground up in C++. Includes space partitioning data structure (k-d tree), CPU multithreading, texture mapping support (both procedural and through image loading), model loading of .ply files, area lights and volumetric lighting through ray marching.

Code and more images available at the github repo.


OpenGL Framework

An OpenGL framework written from the ground up in C++ with a few helpful external libs. Includes vertex and fragment shader reader, model loading of Wavefront files, primitives generator with mesh control, phong illumination, light mapping support (diffuse mapping, specular mapping, normal mapping), shadow mapping and deferred shading.

Code and more images available at the github repo.


Virtual Theatre

This project is divided in two applications, one is an application built using Unity and Vuforia to display Motion Capture data in an Augmented Reality experience and the other also built in Unity uses Microsoft's plugin to capture motion data. Uses Vuforia SDK to display AR graphics, Uses the Moverio SDK to be able to run on the Epson Moverio BT-200 glasses, animation through Keyframing and TCB interpolation.

The code for this project is separated into two repositories, one to build the AR application here and the one for motion capturing here.


Sand Particle Simulation

A simulation of the behaviout of sand particles built using in Unity as a framework. Includes a custom particle system (emitter, position update, etc), collision detection, colission behaviour modelled after sand behaviour, animation of models though Runge-Kutta integration.

Code available at the github repo.