HDRP Grass Warning

Hi everone,
trying to add grass to the terrain when I saw this
6393092--712805--HDRP Terrain.png

“Current render pipeline does not support Detail shaders”
Does this mean I can’t add grass?

using Unity 2019.4.11f1, HDRP 7.4.1 and terrain tools 3.0.1

1 Like

You can try to add grass as trees :wink:

Hmm…but the frame rate drop is crazy

That’s why I’m trying to get past it using DrawMeshInstanced, but I’m having problems putting shadergraph shaders into addressables…

Did you try? this https://discussions.unity.com/t/734423

here is the shader graph https://github.com/flamacore/UnityHDRPTerrainDetailGrass

1 Like

Also, try to disable shadow casting for grass. I had a 12000 draw call scene from which 9000 where draw calls for shadows. I just disabled shadowing for that material and worked like charm (from 30fps to 80fps).

2 Likes

Edit: as of 2021.2( tech stream +) HDRP details rendering with Shadergraph and GPUinstancing support can be utilised.

Directly HDRP does not support rendering of the details using the terrain system.
i certainly don’t advise using grass as trees, simply because it would absolutely kill your performance and artistic ability on larger spaces, but you might be able to get away with it in some cases.

However, there are solutions availble below ( bold = recomended for unity terrain users in HDRP)

Personally me an my team have invested heavily into these two 3rd party assets:

The Vegetation Engine (TVE) - Asset unification (shader conversion/PBR), interaction.
https://assetstore.unity.com/publishers/20529

Nature Renderer (NR) - Procedural instancing of terrain details (enables detail painting in HDRP), does not support trees ( yet)
https://assetstore.unity.com/publishers/13640

this will enable you to have detials painting in HDRP, with instancing indirect on anythign in the details panel.

both quite happily support one another and can be used together or not.

To simply paint your grass on terrain in HDRP, you’ll specifically need either
Nature Renderer
or
i believe GPU instancer but i havn’t used it to confirm, however i believe it instances both details ( Grass/plants/Rock) AND trees, where as NR just does grass/plants.

You’ll also need Nature Renderer shader if you use NR alone which is a new product from them, that has a simpler conversion process similar toTVE but again just for grass/plants.

Vegetation studio pro is probably the previous large package from previous unity versions, but works on its own system ( not terrain) utilising burst preview from unity but works on any object ( tree rocks grass etc that you wish to “place” on the terrain

where things become interesting is that TVE can unify all of this and run all of the renderers if you have/want them.

but i recomend do some research and look into exactly what you need as you’ll be crossing off multiple requirements of a project, instancing - 3 seperate ones - trees/placement/unity terrain system.

potentially for you the ideal world would likely be combining
TVE ( NR details + GPUI trees).

this would be lightweight.
you can convert all of your terrain assets- props, prefabs
to TVE that enables NR for grass-like details instancing and also enables GPUI for tree instancing
and the workflow mirrors the use of unity terrain as you know it.

TVE does bring alot to the table like wind, motion, masking, colouring, wetness, seasonal,size (shrink)
NR shader, does a few similar processes to if you want something simple for just details only rendering working with NR and NR shader alone will be just fine.

i’m obviously not here to tell you how to spend your money but absolutely research specifically what you need.

Feel free to tag/message me if you need more input.

for use case i can likely spawn about 3.5 million grass of 3k polys/tris on a 10km terrain with about 6ms on CPU GPU. now this is extremely arbitrary, and of course culling and large colider placements on level design is extremely important still.

Hope that helps.

7 Likes

Wow thanks! both of them seems very interesting. I read a lot of recommendation for Visual Studio Pro but didn’t know it didn’t support Unity terrain.

1 Like

You’re most welcome :slight_smile: