Stylized Grass Shader [URP] ☘️

https://www.youtube.com/watch?v=AWjWMmCNHHg

Documentation | Asset Store | Roadmap






5 Likes

This thread is intended as a platform for questions or asset support. Posted ahead so I can include the link in the documentation.

Actual package will go live in a few days :)

2 Likes

Looks amazing! Will check it out in a few days when its live

1 Like

Package is now live! https://www.assetstore.unity3d.com/#!/content/143830


If anyone is familiar with the package, please consider leaving a review. This'll go a long way and will be highly appreciated :)

2 Likes

I've publicized my Trello board: https://trello.com/b/LhyoTXga/stylized-grass-shader

Short term:

  • Layer system for benders (controls which benders draw on top)
  • Shader Graph nodes (allows usage of many of the features in a custom shader)

  • Wind animation

  • Hue variation

  • Bending

  • Translucency

  • Color map sampling

  • Color map rendering from mesh terrains (probably already works, but wasn't tested)

  • Mask wind tint in shadows (it represents a sun light sheen, so this is better suited)

  • Custom color map texture (eg, terrain lightmap or exported from external terrain tools)

Long term:

  • Scale grass based on terrain textures (creating the necessary data is rather complex, at least in a fast way)
  • LOD crossfading (code is already there, but crossfading seems bugged in the URP at the moment)

will be support mobile in furture?


It's currently not advertised as supported since it hasn't been tested on Android/iOS, but it could work. But mobile support is outside of the scope for the time being.

when i import the asset, using the Universal Render Pipeline, should i enabled SRP Batching ?

Not necessarily, the shader supports SRP Batching in case you choose to use it for your project entirely. It's mostly beneficial if you use many different materials but with the same shader.

Been waiting for this for some time, very excited to try it!
It looks absolutely fantastic.

Is Vegetation Studio needed to get good performance or will it work well without it?


Thank you!

Vegetation Studio isn't necessarily required, but a GPU Instancing system will yield the best performance at large scales. This could be Vegetation Studio, Nature Renderer, GPU Instancer, or any custom systems. The documentation has a section which outlines several methods for placing/rendering grass: http://staggart.xyz/unity/stylized-grass-shader/sgs-docs/?section=placing-grass

Hi,

we are using this asset in our current project and we are very happy with it. However, there is some feedback that might increase usability and compatibility with Nature Renderer in some scenarios.

Mostly, when using the shader as a grass replacement shader in Nature Renderer, the textures the grass was painted with in the Unity Terrain is not used (the texture in the replacement material is used). This makes unworkable the workflow of painting grass using the Unity Terrain system and overriding it with Nature Renderer. Right now NR's override is slower than using grass detail meshes, so it's not a big deal until NR improves non-mesh grass performance (we are using grass detail meshes) but having the shader work as a grass override shader would be beneficial long term, we think.

2 Likes

Thanks for the tip! I checked out NR's "Billboard Grass Material" and it appears that the billboard mesh that's generated isn't going to work with the shader. Namely because there are no vertex colors, and the normals aren't pointing up. These are vital for the shading and animations to look correct.

I don't know if Nature Renderer is creating these meshes, or the Unity terrain is. In case of the latter that's unfortunately a show stopper, as nothing could be changed about that. But I'll reach out to the author to touch base :)

1 Like

Submitted version 1.0.1

Added:
- Grass Renderer component now has a WindZone field. When enabled, ambient and gust strength are influenced by its "Main" value

Changed:
- Wind tint is now masked by shadows
- Translucency effect now fades out when Directional Light approaches to the horizon
- Shader UI will show warnings about reflection settings when incompatible scene lighting settings are used

Fixed:
- Tiling/Offset values for normal map had no effect
- Color map rendering from mesh terrains can now automatically calculate the correct render area size

Next update will focus on adding Shader Graph nodes, and the sorting layer option for grass benders. I'll be traveling next week, so I'll only be able to get back to any messages once I'm back.

1 Like

Hey @StaggartCreations , sorry for the delay but I finally put up a review (5 stars of course). I'm been extremely happy with the asset and am excited for any additional features (layered benders being the most).

I was really happy to see separate flatten/push options, and the distance fading is GREATLY appreciated! Thanks again for such a well-thought out package!

1 Like


Nature Renderer is creating the meshes for those! Your grass looks great and I'd be more than happy to make an integration for Nature Renderer so that the meshes are created correctly for your grass shader. :) Could you send me a PM or email (support@visualdesigncafe.com) with details on what data your shader requires?

1 Like

Hi, I'm actually using my own custom meshes with the shader, and the only adjustment was to make sure all normals faced straight up.

Thank you for your candid review, it is very much appreciated!

That's a relief! Happy to hear you're willing to add an integration, I'll be in touch and send you the package with the necessary details.

Since URP 7.2.0 was released some of the behavior around shadow cascades was changed. Currently, the grass will show a dark line at the cascade edges. I'll need to investigate how to correct this.

I'm a little strapped for time due to GDC coming up, but I'm aiming to update the package by the end of the month.

Is that cascade thing a reported bug? I'm getting that as well with 7.2.0.