Procedural grass! Got it working, thanks to GRID devs for all those great ideas. At its core, similar to smoke, same bunch of particles generated on GPU side, although here, it’s being regenerated each frame. Still some work to do, but in general, I think, it already looks pretty decent (although, texture, I think, could use some work).

Grass is synced with ground color and lighting (apart from grass texture, which gradually fades out with distance), so it doesn’t pop up. Normals are also synced, although there is a bit of an issue with smoothing those normals for now in some extreme cases with low poly hills.

Two types of grass are generated, a lot of vertical bits all over the place, and a few horizontal bits nearby to cover transitions and make it look acceptable if camera would to look straight down:

For the whole thing to work, track config needs to have a list of grass generating meshes. Plus other options if needed, for example, certain meshes can stop grass from growing underneath them:

It’s definitely way too high, working on some ways to adjust it for the whole track and, hopefully, something for adjusting for certain areas:

As for performance, for now on Brands Hatch, it reduces FPS from 120 to 110 (with camera over track and a lot of grass visible at sides, in general, it mainly depends on how much grass is visible and how much space it takes on screen; even though it’s alpha testing, there are a lot of bits to draw). Hopefully I’ll find a way to optimize it some more, and add some option for reduced density just in case.

Here is how it looks on Highlands. Hopefully some track-specific textures for grass would make the whole thing more diverse:

Thank you for all the support! If you have any suggestions, please let me know. :)
Ilja Jusupov aka x4fab
2019-10-26 21:52:36 +0000 UTCZip Zap
2019-10-18 22:52:21 +0000 UTCIlja Jusupov aka x4fab
2019-09-01 16:08:56 +0000 UTCIlja Jusupov aka x4fab
2019-09-01 16:04:14 +0000 UTCIlja Jusupov aka x4fab
2019-08-30 15:53:47 +0000 UTC