Real-Time Grass Simulation and Rendering in Vulkan

This is a course project that implements the paper: Responsive Real-Time Grass Rendering for General 3D Scenes (2017). Using Vulkan, a compute shader is used to apply simple dynamics to the grass curves (e.g. wind and gravity forces), while tesselation shaders are used to generate vertices and patches from the curves for rendering. Culling operations are also implemented to improve the rendering performance of dense grass scene. Overall, it was a very fun project that introduces the Vulkan API and how grass rendering works in real-time applications.

Find out more on Github.