Procedural Procedural Foliage Volumes and Foliage Instances peformance

Hello again,

Are there any performance issues to be considered when employing Procedural Foliage Volumes instead of the Foliage Paint tool? Say an identical number of trees were to be distributed over the same amount of space?
Likewise, do the Landscape Grass Tools offer any peformance gains or drawbacks?

Cheers,

Paul

Hi Paul,

Sorry for the late reply.

The Procedural Foliage Volumes and the Foliage Paint tool are identical at runtime. The Procedural Foliage Volumes just place foliage instances as if it had been placed by the foliage tool, and you can even add or remove instances with the foliage tool after the simulation has been run. The instances are rendered using a HierarchicalInstancedStaticMeshComponent for each foliage type. The instance buffer is always around while the levels are loaded so the instance data contributes to runtime memory, size on disk and load time. Each instance has 48 bytes of GPU data and 80 bytes of system memory. Unlike Landscape Grass, the Foliage Paint and Procedural Foliage types can have collision.

The Landscape Grass feature renders instances the same way as the Foliage Paint tool (by populating instances in HierarchicalInstancedStaticMeshComponents) but the instance data is generated at runtime and only around the camera. This generation has some minor cost, but it done in a background thread, and it allows you to have what would be many millions of instances placed by the foliage tool and only have the 100,000 or so near the player in memory. Landscape grass does have its own memory cost, which the density map that is generated in the editor for areas with grass that the runtime system uses to know where to place instances. The cost is 2 bytes per landscape vertex for components which have grass (to store the height data) plus 1 byte per vertex for each grass type. This cost is typically much lower than it would be if they were painted or procedural instances.

Cheers
Jack

Excellent. Thanks for your knowledge Jack.

Is it better to use the Foliage Tool or a Foliage Volume to add grass to my landscape, since as mentioned above the Landscape Material Grass feature comes with extra cost?

Can 1 Foliage Volume be considered to be 1 Foliage Cluster?

Thanks

Related https://docs.unrealengine.com/latest/INT/Engine/OpenWorldTools/Grass/QuickStart/3/