Procedural grass (spawned on gpu..?)

Bit of an odd question.

Is it possible to use some kind of material setup to add geometry (grass) dynamically?

Like:

  • have a mesh face with upwards normal and certain uv coords
  • on that face create more geometry on gpu ( Geometry Shader spawn vertex, tessellation, voodoo magic and other words I heard on the bus)
  • arrange the new vertices to textured grass planes
  • ???
  • smoother lod and profit on performance?

I am using procedural geometry already.
I could use 9 chunks of grass meshes and move and edit them in real time to lod for more performance.
Like a grid that follows the player, but less/more in size than world chunks… It’s plan B, I guess.

I understand that my explanation is quite crude as I only have limited understanding what Geometry shaders and tessellation do or how they are done in UE4.

You can do this for landscape using the grass system.
See:
https://docs.unrealengine.com/latest/INT/Engine/OpenWorldTools/Grass/QuickStart/3/index.html

Currently grass only spawns on the landscape.

You could conceivably make your own grass sytem that can project downwards on anything by using a rendered depthmap of your entire level, but it would be quite technical to get it set up. You could look at how the kite demo uses a depth map of the landscape to automatically create rock edges of lake meshes.

I saw the landscape feature, but I assumed it only handled **where to ** spawn grass not how to(what implementation) spawn grass.
That on the grounds you can paint the grass…

Is there a explanation how it does the grass spawning?
I would assume vertex paint or a texture for positions, and procedural mesh or plain object placement for spawning?

I am using Procedural Mesh Component to generate my landscape, I don’t know if I am able to(skill wise) follow the tutorial for the landscape way.

EDIT:

Is per face tessellation possible?
It would make this video even more helpful :slight_smile: