Are there any example shaders for HDRP? HDRP/Lit doesn’t seem to perform particularly well here. Generates a warning “one or more shaders do not support procedural instancing”. Also doesn’t support tints.
This is, unfortunately, a limitation of the Lit shader. You would have to edit the shader code to add support for these features, but Unity resets all modifications by default unless you embed the entire HD render pipeline package.
What you can do is copy the “HDRP/Lit” shader into your project (outside of the HDRP package) and edit the shader code. Adding procedural instancing is fairly simple (and I can help you with this, just let me know the specific HDRP version that you are using), but Tint or other features requires diving deeper into the HD render pipeline code.
An update on Unity 2020.2 compatibility: everything is working.
A lot of changes were needed to get 2020.2 working, so I will spend a bit more time testing and verifying that all platforms and features are working correctly. You can expect an update next week, along with some more information on the changes.
More like next year? ![]()
A few plugins I have (like for water & weather) were broken with HDRP 10 update. Over the last few days they’ve been updating so I’m eagerly awaiting for Nature Renderer (no pressure!).
I didn’t realize how much I have relied on Nature Renderer until it was broken with HDRP 10. It’s like, I don’t even want to open the scene to work. If I’m not gonna see my dense grass swaying smoothly and trees bending under the breeze, what’s the point.
I got your preview of nature shaders and that seems to have improved performance a lot.
Hi, is it possible to globally change the brightness of the vegetation without changing every detail of every terrain?
Thanks
Hi there! I have a top-down game with procedural terrain that uses 3D grass models placed via terrain details. For the last year and a half I’ve been using ATG which has performed well, but during the asset sale I got really interested in getting some interactivity into the grass.
I tried a combination of The Vegetation Engine and Nature Renderer. Visually, both Nature Renderer’s wind visuals and the interactivity that TVE granted looked great.
Unfortunately, the frame rate hit I’m taking is pretty severe (about half the FPS of what I got using ATG, 50+ down to 25-30) and the Boxophobic folk suggested I use larger grass groups. Since my procedural map generation already relies on something similar to terrain grass and I need the foliage to work on slopes, it’s not really an option.
You can probably see from the video above, I don’t really place thousands upon thousands of grass elements. I do use non-alpha 3D models so it looks its best from top-down, but I tried swapping out for old-school cross-shaped impostors and the speed was similar. I look down at the ground from a pretty high angle, so while my camera only shows a chunk of the terrain (the terrain is about 4 screens wide), I can’t rely on just the distance fading to keep my perf up (I think ATG is pretty aggressive in rendering what’s within the frustum).
I didn’t know if there was any setting within NR that might help me in a similar way? Any particular tripping hazards I should know about?
HDRP 10 support is ready! You can see your grass swaying again ![]()
What brightness do you want to change exactly? The color? The specularity/smoothness? The easiest way would be to change the material of the terrain detail(s).
There are quite a few different methods that you can use to optimize performance, but it all depends on what the bottleneck is. Could you profile your game using the profiler window and let me know the results? I should be able to give you specific advice if I have some more details.
Nature Renderer version 1.4.0 is now available through the built-in updater and will be available on the Asset Store within the next few days. Go to Help > Nature Renderer > Check for Updates to download the update.
This update has been in development for the past 8 months, and it is a very large update to the shaders. (And also adds support for Unity 2020.2)
So, what’s new?
The shaders have moved to a custom shader framework, and no longer use surface shaders or shader graphs.
Why? To improve the following:
- Improved import times for the Built-in Render Pipeline. The previous shaders could take up to 20 minutes to import. The new shaders only take a few seconds.
- The shaders are no longer limited by what Unity’s surface shaders or shader graph supports. Especially Shader Graph was lacking a lot of features, and limited us in what we could implement.
- Better compatibility. Shader Graph was lacking a lot of extensibility and broke our shaders with almost every Unity update. Unity 2020.2 completely broke all extensibility for us, so we decided to move away from Shader Graph for now.
- Better performance. We now have full control over the shader code, so we can optimize everything for vegetation rendering.
- Faster updates. We now only have to update 1 shader, instead of a separate surface shader and shader graphs for 3 different render pipelines.
Please make a backup before updating to this new version. All materials and shaders in your project will automatically convert to the new shaders. The conversion has been tested a lot, and should be seamless. But it is good to have a backup, just in case.
Notes and Limitations
- Raytracing in HDRP is not yet supported.
- Converting the project in the built-in render pipeline takes a long time because the old shaders need to be imported multiple times. Assume it will take about an hour.
(Converting for URP and HDRP only takes a minute or so) - Some of the fields in the material moved around a bit, and some features changed slightly. I will update the documentation in the coming days to match with the new update.
Full changelog:
New:
- Support for Unity 2020.2
- Included Nature Shaders now use a new custom shader framework instead of surface shaders or shader graphs. This ensures compatibility with all render pipelines and all Unity versions.
- It is now possible to change the lighting quality for materials.
- It is now possible to change the blend mode of the translucency effect.
- Specular highlights on materials can now be disabled.
- Materials using “Standard”, “URP/Lit”, or “HDRP/Lit” shaders can now be converted to Nature Shaders automatically.
- It is now possible to disable translucency for materials in HDRP.
- Full support for deferred rendering.
- Improved UI of material editor and added links to relevant documentation.
Fixed:
- Detail objects no longer render in Prefab Mode.
- Internal materials for 2D grass textures are now correctly set up for all HDRP versions.
Changed:
- Added default grass material to resources folder to ensure that the correct shader variants are included in a build.
- Improved performance of all included shaders.
The color, and all of my grasses are 2d sprites, so they don’t have a material. Would I be better off changing the texture itself for a very fast color change of my terrains? Thank you and sorry if I wasn’t clear!
With mesh terrain support, this would be an instant buy for me.
They use terrain details and just render them in a better way. You’d need some vegetation data somewhere
If you have specific Healthy and Dry colors set for the grass then editing the texture would be fastest.
If you don’t have specific colors set, then you can do the following:
- Open the folder “Assets/Visual Design Cafe/Plugins/com.VisualDesignCafe.NatureRenderer/Resources” in your project window.
- You will see a material named “Default Grass” in that folder. (Note: this material is only available in the latest version: 1.4.0)
- Assign this material to the “Material Override” field of the Nature Renderer component. This will ensure that the material is used for all 2D grass textures.
- Set the Color Method of the material to “HSL”.
- Increase the “Lightness” slider of the material.
You may have to change the “Double Sided Normals” field of the material to “Same” if the lighting is incorrect.
Nature Renderer relies on Unity’s terrain data, so mesh terrains will be difficult to support. That said, if you convert an exiting Unity terrain to a mesh then you can use that mesh for the terrain rendering. Nature Renderer only needs the Terrain Data (heightmap, splat map, etc.), and it does not require the terrain to be rendered by Unity.
Thank you!
Quick question: Is there a way to hide grass or bend it, for example, when I drive a car on top of it? Right now the grass goes through the vehicle and I can see it from inside. Any way would work for me, I do not need a fancy bending effect. Cheers!
You beast! Awesome news, can’t wait to test it out. Thanks ![]()
After importing the newest versions of Nature Renderer, Nature Shaders Essentials and Open World Nature into my 2019.3.14f1 project, I get this weird green sheen on leaves that are underneath / covered by other leaves. When I enable Double Sided, I can see that the opposite side is bright green, which in addition is bleeding onto the leaves like some sort of light-sim-bleed(?) even without Double Sided on. It gets progressively worse the higher I set Vertex Normal Strength.
I did not get that sheen before updating. How can I get rid of it?
We usually have Vertex Normal Strength at 0.56, which is the value on this first screenshot.

This second screenshot is with Vertex Normal Strength at 1.0 to show the difference

Can you let me know which render pipeline you are using?
It is most likely the Translucency effect. If you are using HDRP then this effect shows if the diffusion profile is either not assigned, or the HDRP settings are missing the default diffusion profile.
For other render pipelines it might an issue with the material settings.
Can you share a screenshot of the material settings?