New: Nature Renderer 2021

Render vast amounts of detailed vegetation on your terrain.

Learn more
This page may not work correctly inside the Unity editor. Open in browser

0.9.X

Overlay

nature-shaders-overlay-loop.gif

It is now possible to create overlays in the scene that modify the color and alpha of vegetation. You can use this to create more color variation in the scene, or to mask out vegetation. The overlay is fully dynamic and can be created and modified at runtime.

Learn More

Translucency

Translucency now correctly handles shadows, resulting in a more realistic and accurate result.

Quality Settings

The quality settings can be used to reduce material quality depending on a player's settings or hardware.

Learn More

Perspective Correction

nature-shaders-tilt-comparison.jpg

It is now possible to slightly tilt grass away from the camera to achieve a billboarding effect. This helps the grass to be perceived as more dense when looked at from above.

New Shader Framework

The shaders have completely moved away from Surface Shaders (standard/built-in render pipeline) and Shader Graphs (URP/HDRP) to a custom shader framework that is fully written in HLSL.

Why? The surface shader compiler in Unity has not been updated in a long time and caused increasingly long import times. Meanwhile, Shader Graph has continuous compatibility problems and lacks the extensibility that is required for Nature Shaders.

Our solution to these problems is a custom shader framework that is fully written in HLSL and that allows us to write a single shader for all render pipelines. What this means for you is:

  • Faster updates. We only have to update 1 shader now, instead of 3 different shaders for each render pipeline.
  • Better performance. Having full control over the shader framework means that we can optimize everything specifically for vegetation rendering.
  • More features. We are no longer restricted by the (limited) features that Shader Graph supports. 

 

Changelog

0.9.2

Fixed

  • Fixed shader error: 'UnityGetRawBakedOcclusions': no matching 2 parameter fuction
  • Fixed shader error: Undeclared identifier 'positionWS'.
  • Fixed shader error: Invalid subscript 'pos'.
  • Fixed shader error: Redefinition of 'ConstructFloat'.
  • Fixed shader error: "LodDitheringTransition" is not supported on GLES 2.0.
  • Fixed shader error: Undeclared identifier 'packedInput'.
  • Fixed shader error: Cannot convert output parameter from 'struct LightLoopOutput' to 'float3'.
  • Fixed shader error: Redefinition of 'SafePositivePow_half'.
  • Render Queue is not correctly set for material.
  • Fixed import errors in Unity 2020.2 that would occur when importing the plugins.
  • Fixed issue where shaders of materials would be unassigned after importing an update for the plugins.
  • Fixed GC allocations in Interaction and Overlay rendering code.
  • Fixed small leak of resources in editor when entering/exiting playmode or recompiling scripts.
  • Fixed accuracy issue with interaction calculations.
  • Fixed stretching issue for vegetation that had interaction enabled.

Changed

  • "Interaction Strength" is now independent from "Interaction Push Down" and both can be tweaked separately.
  • Reduced popup speed of vegetation for trails.

0.9.1

New

  • Full support for HDRP.
  • Support for Unity 2020.2.
  • Added conversion profiles for Standard, URP/Lit, and HDRP/Lit materials.
  • Improved UI for material editor.
  • Full LOD crossfade support for all render pipelines.
  • Internal improvements to shader code.

0.9.0

New

  • Lighting Quality setting in material.
  • Settings to disable specular highlights and environment reflections for material.
  • Global Quality Settings to change the shader quality in the project, and to disable features.
  • Overlay for vegetation to change the color and/or alpha of vegetation in the scene.
  • Tilt feature to tilt grass away from the camera when looking down. This creates the illusion of more dense grass.
  • Alpha to Coverage support for transparent materials. This enables smoother edges for transparent objects when antialiasing is enabled.

Fixed

  • Fixed issue where interaction would not work in a build.
  • Fixed issue where all grass and vegetation would be pushed down if interaction was not enabled.
  • Fixed compatibility with OpenGL.

Changed

  • Shaders now use a custom shader framework as base, instead of surface shaders or shader graph.
  • Improved performance of wind animations. The new wind animations may be slightly different than before.
  • Improved performance of lighting and translucency.
  • Translucency now correctly handles shadows.
  • Translucency is now added using "Add" blend mode instead of "Overlay". This results in less saturated lighting, which is better suited for realistic rendering.
  • Performance improvements for interaction shader code.
  • General performance improvements for shaders.

Removed

  • Removed "Buy" button. It was not supposed to be there and was included by accident.
  • Removed Shader Graphs and Shader Graph related code.
Was this article helpful?
0 out of 0 found this helpful