Post

Enhanced Grass Rendering

An investigation into the use of mesh shaders for grass rendering.

Enhanced Grass Rendering

Overview

An implementation of a modern geomertry based approach for grass rendering, through both a traditional vertex shader based pipeline and a modern mesh shader based pipeline. This runs within a custom vulkan renderer developed for the project.

Desktop View

The full source code can be viewed here.

The accompanying dissertation can be viewed here.

What was developed?

An application was developed using C++ and the Vulkan graphics API.

The program features a modern high-fidelity implementation of grass implemented for both a traditional vertex shader based pipeline and a modern mesh/task shader based pipeline.

The grass is fully customisable with several options availible to be tweaked such as height, width, curve and lean.

Desktop View

Research

The research for this project looked at utilising mesh shaders to enhance modern high-fidelity grass rendering through continuous LODs.

The vertex shader based pipeline utilises a traditional discrete LOD system showing a sharp cut off between the seperate models, visualised here on the left with high LOD rendered in white and low LOD rendered in grey.

To the right the mesh shader based pipeline’s procedural continuous LODs can be seen, with the brightest colour having the most vertices and the darkest colour having the least.

Desktop View Desktop View

This post is licensed under CC BY 4.0 by the author.