Samples

OPEngine

A custom rendering engine based on OpenGL. This engine was used as a base for some of my projects where a lower level API was more convenient. It has a profiler and some tools for handling 3D model/scene loading, shader preprocessing and compilation, uniform buffer bindings, etc…

Classical Rendering Pipelines

The classical Deferred and Forward rendering pipelines implemented on my custom engine (OPEngine). They come with features such as Shadow Mapping, Normal Mapping, multiple point and directional lights, Anti-Aliasing (MSAA and FXAA), hdr and tonemapping, skybox…

Radiance Cascades For 2D Global Illumination

Radiance Cascades is a novel approach to both 2D and 3D global illumination created by Alexander Sannikov. It is built to produce a noiseless result by sampling and interpolating incoming radiance from a hierarchy of probes placed on the scene. Each hierarchy level/cascade samples the scene with a higher angular frequency (more rays per probe) and reduced spatial frequency (less probes overall). This project uses my custom OpenGL engine (OPEngine) to implement this technique in 2D in order to explore its intricacies.

Voxel Cone Tracing Renderer

My implementation of Voxel Cone Tracing Global Illumination using my custom OpenGL engine (OPEngine). This project was built on top of my Deferred Renderer and it includes all its previous features with the addition of support for real time dynamic revoxelization and mipmapping of the entire scene as well as the conetracing pass.

GPU boids (Unity)

A GPU driven boid simulation and rendering made in Unity. With the aim to learn and extract the most out of GPU Driven Rendering, I have used Unity’s compute shader capabilities and indirect rendering commands to simulate and draw up to one million boids.

GPU Marching Cubes (Unity)

Another use of GPU Driven Rendering in Unity, this time for the Marching Cubes algorithm on the GPU for complex procedural mesh generation. In this project, I have used compute shaders to generate complex meshes efficiently for indirect drawing. The process is optimezed to generate a vertex pool with only unique vertices alongside an index buffer for indexed drawing.

3D Pixel Art Renderer (Unity)

This project was made with the aim to replicate the pixel art style when rendering 3D meshes. By customizing Unity’s rendering pipeline and using a series of postprocessing techniques, the effect is achieved and, from crude simple 3D models, we can produce a stable pixelization effect that gives a stylized look to our rendererd scene.

Procedural Terrain Generator (Unity)

My take on CPU driven procedural terrain generation in Unity. Supporting noise generated heightmaps for multiple biomes, each with their own custom set of parameters. The biomes are placed on a Voronoi noise grid and their heightmaps blend seamlessly