Search Unity

Nature Renderer: Better terrain detail rendering ✅ PBR ✅ Custom Shaders ✅ Shadows ✅ Wind ✅ SRP

Discussion in 'Assets and Asset Store' started by Visual-Design-Cafe, Oct 3, 2019.

  1. Visual-Design-Cafe

    Visual-Design-Cafe

    Joined:
    May 23, 2015
    Posts:
    381


    Nature Renderer

    Better vegetation, detail object, and tree rendering for your terrain.
    With a single click.


    Nature Renderer replaces Unity's default Terrain Detail Rendering system
    and works with your existing data. Use the same grass, vegetation, and
    trees and keep your existing terrains. We just render it better and faster.

    Supports all platforms and all render pipelines
    Standard RP · Unity 2018.3+
    High-Definition RP 6.9+ · Unity 2019.2+
    Lightweight RP 6.9+ · Unity 2019.2+
    ✔ Universal RP 7.0+ · Unity 2019.3+

    Now Available:
    Download on the Asset Store ›

    LOD
    Use Level-of-Detail on your terrain detail objects to reduce complexity in
    the distance and increase performance.

    PBR
    Get accurate lighting and more detail on your grass, vegetation,
    and terrain details. You can use full PBR shaders on your detail objects.
    Such as the Standard Shader or any other.



    Color
    Easily change the color of your vegetation.
    Using accurate Hue/Saturation/Value color adjustments.



    Shadow
    Enable shadows for your terrain details




    Align to terrain
    Align your grass and objects to the terrain surface.
    No more floating grass or objects clipping through the terrain.



    Familiar Tools
    Use Unity's default terrain, detail, and tree editing tools.
    No need to change your workflow.



    Wind
    Better wind for your vegetation. The included wind shaders provide
    accurate and lifelike wind for grass, plants, and trees.


    Additional features
    • Use custom shaders
    • GPU Instancing
    • Multi-threaded
    • Fade out vegetation in the distance
    • Frustum culling
    • Generate meshes for grass textures
    • Works with multiple terrains
    • No GC Allocations and stable consistent performance
    • Works with multiple cameras

    Now Available:
    Download on the Asset Store ›
     
    Last edited: Dec 6, 2019
    TeagansDad, Alverik, Mister-D and 7 others like this.
  2. Visual-Design-Cafe

    Visual-Design-Cafe

    Joined:
    May 23, 2015
    Posts:
    381
    Changelog

    1.1.7
    • New: Performance improvements.
    • New: Render buffers are now kept between frames and are only refreshed when visible details on the screen changed.
    • New: Rendering now uses multiple threads if available.
    • New: Camera culling mask is now applied to terrain and terrain details.
    • Changed: Terrain Details now use the color of the material if no Healthy or Dry color is set in the terrain detail settings.
    • Changed: Stream section in Nature Renderer component is now collapsed by default.
    • Changed: Grass and Vegetation shaders now also work when using a deferred renderer and are no longer forced to be rendered using a forward renderer.
    • Fixed: Issue where terrain details would not render in a build if there was no Global Wind component in the scene.
    • Fixed: Stream-out distance is now calculated correctly.
    • Fixed: Grayscale textures now work correctly as 2D grass textures.
    • Fixed: 2D Grass textures now work correctly in Universal Render Pipeline.
    • Fixed: Performance issues with streaming when using multiple cameras.
    • Fixed: Exception when removing a terrain detail from the terrain settings.
    1.1.6
    • New: Detail Streaming. Terrain details are now streamed-in while playing instead of loaded for the entire terrain at startup. This improves performance and drastically reduces memory usage.
    • Changed: Improved performance when editing terrain.
    • Changed: Detail Distance can now be set through code.
    • Changed: Better Frustum culling algorithm. Terrain details are now culled correctly for any camera angle and are culled more accurately.
    • Changed: Overall performance improvements.
    • Fixed: Grass Textures now render correctly in LWRP, URP, and HDRP.
    1.1.5
    • New: Added smoothness and metallic support to shaders in Standard Render Pipeline.
    • Changed: Performance improvements.
    • Fixed: Issue where some strips of grass were not placed on large terrains.
    • Fixed: MissingMethodException when building for AOT platforms. Caused a black screen or grass not rendering in Scriptable Render Pipelines.
    • Fixed: MissingMethodException in Unity 2020 Alpha.
    1.1.4
    • Fixed: Occasional crash when entering playmode or in build.
    • Fixed: Issue where newly added terrain details would not render until the scene is reloaded.
    • Fixed: Terrain Details now render correctly on non-square terrains.
    • Fixed: Error causing terrain details to be invisible in Unity 2019.1
    1.1.3
    • LWRP/URP/HDRP: Shaders now have instanced properties for colors. This fixes an issue where the ‘healthy’ and ‘dry’ color would not give correct results.
    • LWRP/URP/HDRP: Shaders now correctly use the ‘Smoothness’ and ‘Metallic’ values from the mask map.
    • Fixed shader error when building in HDRP 7.X
    • LWRP/URP: Disabled crossfade by default in prefabs because the render pipeline does not support it.
    • New materials created with ‘Open World Nature’ shaders now have their keywords and default values correctly set when using a Scriptable Render Pipeline (mainly HDRP).
    • Mask Map now tiles correctly.
    • It is now possible to select a material to use for billboard grass.
    • Fixed exception when a material uses an ‘_Albedo’ property instead of ‘_MainTex’ for its main texture. This caused terrain details to not render in a build when using HDRP.
    • Fixed a culling issue that would occasionally happen for certain cells.
    1.1.2
    • Fixed issue where objects would be invisible when used outside of Nature Renderer.
    • Offset and Rotation of LOD0 of original prefab are now used when calculating terrain detail position and rotation on the terrain.
    • A consistent seed value is now used when calculating positions of terrain details to keep them at a consistent position between sessions.
    • Improved error handling and reporting.
    • It is now possible to add a Nature Renderer component to a Game Object without a Terrain component.
    • Stability improvements.
    1.1.1
    • Density now matches with Unity’s default detail density.
    • You can now use the density slider to increase/decrease detail density.
    • Fixed a NullReferenceException when changing the prefab of a detail object.
    • Fixed an exception when GPU Instancing is not enabled for a material.
    • Increased maximum detail rendering distance to 350.
    • Fixed issue where painting details in HDRP would disappear if the target strength was less than 1.
    1.1.0
    • Added support for High-Definition Render Pipeline (HDRP).
    • Added support for Lightweight Render Pipeline (LWRP).
    • Added support for Universal Render Pipeline (URP).
    • It is now possible to use Level-of-Detail for terrain details.
    • Original rotation of terrain detail prefab is now used when placing detail objects.
     
    Last edited: Feb 17, 2020 at 4:29 AM
    Alverik likes this.
  3. Visual-Design-Cafe

    Visual-Design-Cafe

    Joined:
    May 23, 2015
    Posts:
    381
  4. StevenPicard

    StevenPicard

    Joined:
    Mar 7, 2016
    Posts:
    663
    Looks very interesting. How much of a frame rate increase have you seen using this?
     
  5. jjejj87

    jjejj87

    Joined:
    Feb 2, 2013
    Posts:
    350
    Is there HDRP support?
     
  6. dirtybassett

    dirtybassett

    Joined:
    Oct 3, 2012
    Posts:
    59
    Does it work on mobile?
     
    Lars-Steenhoff likes this.
  7. Visual-Design-Cafe

    Visual-Design-Cafe

    Joined:
    May 23, 2015
    Posts:
    381
    It depends a bit on the settings you use, but as an example, the scene from the video at the top gives the following results:
    • Nature Renderer: 60-70 FPS. (With full PBR shaders and high-resolution shadows for all grass.)
    • Unity: 40 FPS. (With a basic shader, no shadows, and a reduced density. Unity has a vertex limit so it couldn't handle the density).
    Edit: Some additional specs:
    Resolution: 2560 x 1080
    NVIDIA GeForce GTX 1060
    Using 2x MSAA
     
    Last edited: Oct 4, 2019
  8. Visual-Design-Cafe

    Visual-Design-Cafe

    Joined:
    May 23, 2015
    Posts:
    381
    Yes. HDRP is supported straight out of the box.
     
  9. Visual-Design-Cafe

    Visual-Design-Cafe

    Joined:
    May 23, 2015
    Posts:
    381
    Yes. You just have to make sure that the minimum system requirements for GPU Instancing are met.
    GPU Instancing is available on the following platforms and APIs:
    • DirectX 11 and DirectX 12 on Windows
    • OpenGL Core 4.1+/ES3.0+ on Windows, macOS, Linux, iOS and Android
    • Metal on macOS and iOS
    • Vulkan on Windows, Linux and Android
    • PlayStation 4 and Xbox One
    • WebGL (requires WebGL 2.0 API)
     
    Alverik and Lars-Steenhoff like this.
  10. StevenPicard

    StevenPicard

    Joined:
    Mar 7, 2016
    Posts:
    663
    Sounds good. I am assuming VR isn't be an issue?
     
  11. jjejj87

    jjejj87

    Joined:
    Feb 2, 2013
    Posts:
    350
    just subscribed. Really excited about HDRP support!
     
    Visual-Design-Cafe likes this.
  12. Visual-Design-Cafe

    Visual-Design-Cafe

    Joined:
    May 23, 2015
    Posts:
    381
    VR shouldn't be an issue, although I haven't had the chance to directly test it on a VR device yet.
     
  13. jjejj87

    jjejj87

    Joined:
    Feb 2, 2013
    Posts:
    350
    Could we get more realistic scenes rather than stylized? I would love to see how it comes out.

    Thanks!
     
  14. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    2,416
    What about seasons? snow / wetness
     
  15. Visual-Design-Cafe

    Visual-Design-Cafe

    Joined:
    May 23, 2015
    Posts:
    381
    I don't have any specific demo scene for a realistic style, but I just put together a few assets from the Book of the Dead in a new HDRP project so you can get an impression of the results. You should be able to get much better results if you put a bit more effort into setting up the lighting/render settings/materials.

    Also, I noticed a few issues with the HDRP version that I am fixing now. So full HDRP support might be pushed back a few days after launch with version 1.1

    Nature-Renderer-HDRP-Book-of-the-Dead-Test-Scaled.jpg
     
  16. Visual-Design-Cafe

    Visual-Design-Cafe

    Joined:
    May 23, 2015
    Posts:
    381
    Not supported by default. But you can add it quite easily because Nature Renderer supports the use of custom shaders. So you can download any existing snow/wetness solution and use it with Nature Renderer.
     
    Lars-Steenhoff likes this.
  17. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    2,416
    I hope it can work together with Map magic 2, that would be great great render with map magic placement

     
    Last edited: Oct 9, 2019
  18. Visual-Design-Cafe

    Visual-Design-Cafe

    Joined:
    May 23, 2015
    Posts:
    381
    I just gave it a try with the evaluation version of Map Magic and looks like it works without any problems. Just add the Nature Renderer component to your terrain and disable Map Magic's terrain detail rendering and everything works.
     
    StevenPicard and Lars-Steenhoff like this.
  19. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    2,416
    That is great to hear!
     
  20. Visual-Design-Cafe

    Visual-Design-Cafe

    Joined:
    May 23, 2015
    Posts:
    381
    I am happy to announce that Nature Renderer is now available on the Asset Store!
    Download for free on the Asset Store ›

    Please let me know if you have any feedback or questions after downloading Nature Renderer!
    (And a new update with full HDRP support and LOD is coming soon)
     
    Alverik and Mauri like this.
  21. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    2,416
    Great news, one question is Universal render pipeline support also on the roadmap?

    thanks
     
  22. Visual-Design-Cafe

    Visual-Design-Cafe

    Joined:
    May 23, 2015
    Posts:
    381
    Yes, it is. Nature Renderer itself should already work, but I still have to port the wind shaders.
     
    Lars-Steenhoff likes this.
  23. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    2,416
    Fantastic, and all for free ! thank you for making this
     
  24. rosor

    rosor

    Joined:
    Nov 15, 2009
    Posts:
    3,647
    I guess I was the first to leave a review. This is exactly what I would have expected from unity to do... AGES AGO!!!.... thanks for doing this. I would have gladly paid for that, just so you know :)
     
    SickaGamer and Lars-Steenhoff like this.
  25. SickaGamer

    SickaGamer

    Joined:
    Jan 15, 2018
    Posts:
    904
    He can trade ya for your characters
     
  26. jjejj87

    jjejj87

    Joined:
    Feb 2, 2013
    Posts:
    350
    Just waiting for HDRP support :)
     
  27. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    2,416
    Its already supported
     
  28. Visual-Design-Cafe

    Visual-Design-Cafe

    Joined:
    May 23, 2015
    Posts:
    381
    Thank you! I am glad to hear that you like Nature Renderer :) If you want to help support us please consider sharing on social media and/or checking out Open World Nature Kit. That way we can keep Nature Renderer free.
     
  29. Visual-Design-Cafe

    Visual-Design-Cafe

    Joined:
    May 23, 2015
    Posts:
    381
    Full support is coming with version 1.1 (although you can mostly get it working with the current version)

    Looks like it will be ready by the end of the week. Plus maybe a few days until the update is live on the store. (Let me know if you want to give it a try earlier and I can send you a preview version)
     
  30. jjejj87

    jjejj87

    Joined:
    Feb 2, 2013
    Posts:
    350
    I've just tried the version on Asset Store and it seems like it is giving dll errors...I am assuming this will be resolved when 1.1 is released so I will keep an eye out for this asset until then.

    Also, it seems like there is a paid version, or a more complete version that includes this asset, can I safely assume that this will also support HDRP?

    Either way, thanks for the great asset, the description alone is promising!
     
  31. Visual-Design-Cafe

    Visual-Design-Cafe

    Joined:
    May 23, 2015
    Posts:
    381
    Yes, the errors should be resolved. I have just uploaded version 1.1 with support for HDRP, LWRP, and URP. It should be available within the next few days.

    And yes, the paid asset also supports HDRP. (It is a collection of models and shaders to build your world, so it is a separate asset and not a variation of Nature Renderer. Just to clarify) I'll be uploading LWRP and URP versions for that one as well in the next few days.
     
    Lars-Steenhoff likes this.
  32. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    2,416
    I would like to set the detail distance to a higher value than 150, can you enable this?
     
  33. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    2,416
    A test scene

    nature.jpg
     
    Alverik, TeagansDad, transat and 2 others like this.
  34. Visual-Design-Cafe

    Visual-Design-Cafe

    Joined:
    May 23, 2015
    Posts:
    381
    I'll see if I can change it. 150 was Unity's limit but it shouldn't be an issue to change it I think.

    Looking good!
     
  35. Visual-Design-Cafe

    Visual-Design-Cafe

    Joined:
    May 23, 2015
    Posts:
    381
    Version 1.1.0 has just been published with full support for the High-Definition Render Pipeline (HDRP), Lightweight Render Pipeline (LWRP), and Universal Render Pipeline (URP). As well as full Level-of-Detail (LOD) support for terrain details. You can download the latest version from the Asset Store or from the menu in Unity:
    Window > Nature Renderer > Check for Updates
     
  36. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    2,416
    Great news!
     
  37. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    2,416
    I got one error, I can click it away, but I'm not sure what it is for
    I'm on a Mac, with unity 2018.4.11f1 default render pipeline

    Screenshot 2019-10-23 at 18.29.33.png
     
  38. Visual-Design-Cafe

    Visual-Design-Cafe

    Joined:
    May 23, 2015
    Posts:
    381
    Thank you for reporting this error. It looks like it is a small error that occurs when changing the prefab of a detail object that does not have LOD. It is safe to ignore for now and I'll upload a patch soon. You should be able to make the error go away by re-opening the scene.
     
  39. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    2,416
  40. Visual-Design-Cafe

    Visual-Design-Cafe

    Joined:
    May 23, 2015
    Posts:
    381
    Version 1.1.1 has just been published. You can update by going to:
    Window > Nature Renderer > Check for Updates

    The new version will be live on the Asset Store within a few days (probably after the weekend). It is recommended to update through the built-in updater as it will download the correct assets for your render pipeline.

    Changes:

    • Density now matches with Unity’s default detail density.
    • You can now use the density slider in the terrain settings to increase/decrease detail density.
    • Fixed a NullReferenceException when changing the prefab of a detail object. (@Lars-Steenhoff this should fix your error)
    • Fixed an exception when GPU Instancing is not enabled for a material.
    • Increased maximum detail rendering distance to 350. (@Lars-Steenhoff as requested :) )
    • Fixed issue where painting details in HDRP would disappear if the target strength was less than 1.
     
  41. Firlefanz73

    Firlefanz73

    Joined:
    Apr 2, 2015
    Posts:
    1,129
    Hello,

    you once made a shader version of the grass shader that I could use for my grass tiles which were in a texture Atlas.
    Thanks again for that, it was a great help ::)
    Is it already included in the asset no, or as I believe it is not, could you also update it and in my personal opinion it should be in the asset, too?

    Thanks a lot! Great asset :cool:
     
  42. Visual-Design-Cafe

    Visual-Design-Cafe

    Joined:
    May 23, 2015
    Posts:
    381
    It does not include the exact same shader, but you should be able to get a similar effect by choosing the 'Grass' shader and then setting the 'Wind Control' property to '(Vertex) Position'.
     
    Firlefanz73 likes this.
  43. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    2,416
    I'm trying it out on iOS , but it seems like its not showing the light on the grass. Can you confirm a check on iOS?

    GfxDevice: creating device client; threaded=1

    Initializing Metal device caps: Apple A10 GPU

    Initialize engine version: 2018.4.11f1 (7098af2f11ea)

    2019-10-27 00:05:53.028149+0200 fly2[358:13038] Unbalanced calls to begin/end appearance transitions for <SplashScreenController: 0x109b42ed0>.

    WARNING: Shader Unsupported: 'Hidden/Nature/Terrain/Utilities' - All passes removed

    ERROR: Shader Shader is not supported on this GPU (none of subshaders/fallbacks are suitable)WARNING: Shader Unsupported: 'Hidden/Nature/Terrain/Utilities' - Setting to default shader.

    UnloadTime: 0.618375 ms

    InControl (version 1.7.4 build 9343)

    InControl.InControlManager:OnEnable()


    (Filename: ./Runtime/Export/Debug.bindings.h Line: 45)


    ArgumentNullException: Value cannot be null.

    Parameter name: shader

    at VisualDesignCafe.Rendering.Nature.MeshGenerator.CreateGrassMaterial (UnityEngine.Texture texture) [0x00000] in <00000000000000000000000000000000>:0

    at VisualDesignCafe.Rendering.Nature.DetailPrototypeCache.CopyFrom (UnityEngine.DetailPrototype detail, System.Single fieldOfView, System.Boolean& flushEverything) [0x00000] in <00000000000000000000000000000000>:0

    at VisualDesignCafe.Rendering.Nature.TerrainDataCache.CopyDetailPrototypeFrom (UnityEngine.TerrainData data, System.Int32 layer) [0x00000] in <00000000000000000000000000000000>:0

    at VisualDesignCafe.Rendering.Nature.TerrainDataCache.CopyFrom (UnityEngine.Terrain terrain, System.Boolean& flushEverything) [0x00000] in <00000000000000000000000000000000>:0

    at VisualDesignCafe.Rendering.Nature.TerrainCells.RebuildTerrainData (System.Boolean& flushEverything) [0x00000] in <00000000000000000000000000000000>:0

    at VisualDesignCafe.Rendering.Nature.NatureRenderer.Initialize () [0x00000] in <00000000000000000000000000000000>:0

    at VisualDesignCafe.Rendering.Nature.NatureRenderer.Awake () [0x00000] in <00000000000000000000000000000000>:0


    (Filename: currently not available on il2cpp Line: -1)
     
  44. Visual-Design-Cafe

    Visual-Design-Cafe

    Joined:
    May 23, 2015
    Posts:
    381
    Can you share a screenshot of the issue and let me know the following details:
    - Which render pipeline are you using?
    - Which shader are you using for the grass?
    - Which device are you using?

    I just doubled checked and everything looks fine on iOS here. Tested with the demo scene that comes with Nature Renderer on an iPhone X.
     
  45. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    2,416
    - Default renderpipeline ( metal )
    - Did not change the shader, just opened the demo scene from nature renderer
    - iPhone 7 plus
    - Unity 2018.4.11.f1 on Mac

    Do I need to change the shader somehow ?

    WARNING: Shader Unsupported: 'Hidden/Nature/Terrain/Utilities' - All passes removed

    ERROR: Shader Shader is not supported on this GPU (none of subshaders/fallbacks are suitable)WARNING: Shader Unsupported: 'Hidden/Nature/Terrain/Utilities' - Setting to default shader.
     
  46. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    2,416
    Feature request: touch bending for grass and foliage
     
    dsilverthorn and transat like this.
  47. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    2,416
    For map magic integration, It only works on the first generated terrain and the script needs to be copied to newly runtime generated terrains. I don't yet know how to do this.

    Normally you can add a script to the mapmagic game object and it will copy to the new terrains, but because nature renderer automatically adds a terrain too, this is not working.
     
  48. Visual-Design-Cafe

    Visual-Design-Cafe

    Joined:
    May 23, 2015
    Posts:
    381
    I am not familiar enough with MapMagic to have an immediate answer for you here, but I'll look into it.
    Nature Renderer requires a Terrain component to be on the Game Object because it needs the terrain data to render your vegetation. Does Map Magic spawn new terrains at runtime, and do these not have Terrain components?
     
  49. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    2,416
    Yes it spawns new terrains at runtime, and the only thing needed it that those spawned terrains also use nature renderer. yes they have terrain components.

    just the main mapmagic script does not have a terrian component, but its children have.
     
  50. Visual-Design-Cafe

    Visual-Design-Cafe

    Joined:
    May 23, 2015
    Posts:
    381
    I'll see if I can modify Nature Renderer to not require a Terrain component. In the meantime, can you try adding a Terrain component and a Nature Renderer component to the MapMagic Game Object and then disabling the Terrain component? Maybe having a dummy (disabled) terrain component will get around this issue.
     
unityunity