Rss

Vulkan Rendering

Visibility Buffer Rendering

This project started as part of the application development portion of my Honors project research into visibility buffer rendering. 

There are three versions of the application that can be built, using different approaches to the rendering of opaque and transparent geometry. The first renderer uses standard deferred rendering for opaque geometry and handles transparent geometry using a weighted blended order-independent transparency algorithm. The second renders opaque geometry using visibility buffer rendering, a memory optimized alternative to deferred shading, and again handles transparent geometry using the weighted blended algorithm. The third uses a newly proposed rendering approach that makes use of a layered visibility buffer generated using a depth peeling algorithm, allowing it to render both transparent and opaque geometry simultaneously. 

This project, and the resulting research, won the Leidos Software Engineering Project Award at the 2018 ScotlandIS Young Software Engineer of the Year Awards.  

Project on GitHub    Demo Videos on YouTube

Terrain Generation

A theoretically endless and deterministic procedural landscape generated and rendered using the Vulkan API. The landscape is generated using  several variations of fractional Brownian motion and Perlin Noise in  compute shaders, then stored in individual chunks, allowing new sections of landscape to be continuously generated  with a low performance overhead. 

Currently the application generates terrain data and simple bodies of water but there are plans to expand the features to include river and foliage generation, regions with differing climates and much more.

Project on GItHub