Update 8: Grass Rendering

I started some experiments with parallax mapped grass, they didn’t turn out to successful. With parallax mapping the grass can not extend out onto other geometry which made it look pretty dull. Next idea was to use shell rendering, this is an age old method used for realtime fur. ‘Shadow of the Colossus’ used it well on the ps2. But it still sees use today in games like Uncharted 4 and GTA5. For me it suits perfectly, as the camera in my game looks down upon the scene I only need a limited number of shells to get a convincing effect.

Shadow-of-the-Colossus-6-Barba-10.jpg

Shadow Of The Colossus (2005) Shell rendered fur

0rF1Omd.jpg

GTA5 (2015) Shell rendered hedges

This is a rough and ready test, the whole terrain mesh has been duplicated multiple times and assigned a new grass material. Works fine for a proof of concept but for final release the next step would be implement the shells in a geometry shader. You cant see this in the images but the grass texture is sampled using the sin and cos of the elapsed time.  This gives an animated wavy wind effect.

shortgrass.jpg

Short Grass, 5 shells

longgrass2.jpg

Medium grass, 10 Shells

longgrass

Medium thick grass, 10 shells close up

superlonggrass.jpg

Long thin grass, 20 shells.

The obvious limitation of this method is that the grass can only be looked down on. If you are looking parallel to the grass the effect can not be seen at all.

limitgrass.jpg

Short Grass, 5 shells, looked at with free floating camera

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s