A small shell texturing grass implementation, based on Acerola's video about fur/grass rendering. Written in C++ using OpenGL
The only geometry in the scene is a single flat plane:

The plane is then subdivided in multiple square sections:

Each section is assigned a random number between 0 and 1 based on the square's x&y coordinates:

The plane is drawn multiple times at different heights. Each square section is drawn only if the height is less than the random number assigned to it:

By shading the square based on its height, it gives it a nice grass-like look:

The camera moves with WASD/ZQSD and can be rotated by clicking&dragging the mouse. Imgui is used to allow changing parameters during runtime
The hash function used to generate random numbers for the height was made by David Hoskins: https://www.shadertoy.com/view/4djSRW
This code is under the MIT license







