The next iteration of the smoothest and fastest dynamic soft-shadows solution for Unity is here. Easier to integrate, faster to render, prettier than previous versions! Featuring powerful new tools, shadowing algorithms, optimizations and user friendly self-descriptive light components to improve the quality of your scene lighting. NGSS is the complete shadows replacement plugin for Unity, being used in top open world titles such as Facepunch Rust, Amplify Creations Decay Of Logos and many others. NGSS is the one stop go to skyrocket your projects shadows quality to cinematic CGI levels without any performance drawback, real time! Everyone agreed, this is how Unity shadows should look like!
Shadows algorithms:
A PCSS filter (Area-like soft-shadows) and a PCF filter (uniform soft-shadows). A powerful denoiser that skyrockets the base filters, acting as a separable filter and features screen space infinite Frustum Shadows with bilateral filtering and edge tolerance. Chose between blue noise or dithering. Samplers are stabilized at screen-space thus the shadow samplers jitters less while being Temporal friendly.
Optimizations:
NGSS uses the least amount of sampling to filter out shadows while skipping fully lit or fully shadowed areas making it one of the fastest solution on the market for realistic penumbra shadows.
Inspirations:
NGSS features a ground-breaking combination of kernel filters mainly based on Monte Carlo. The result is a high quality smothered dynamic penumbra shadows similar to raytraced shadows with superior banding and aliasing removal, making extremely tiny shadowmaps look outstanding.
The package
Comes with one Wizard tool to install NGSS internal shadow libraries and is one click to install and one click to uninstall. Both Local shadows and Directional shadows provides it's own libraries, they are independent from each other. NGSS provides shadow components to attach to your scene lights (all lights) that allow you to tweak shadow properties such as quality, softness opacity, etc at runtime.
Finally, NGSS replaces Unity shadows libraries internally, this allow NGSS to behave the same way as Unity shadows while being compatible with any packages on the AssetStore that uses the Standard (built-in) renderer.
Shadow Features:
- Frustum Shadows (screen space traced) with bilateral filtering for all lights types
- A powerful denoiser that act as a separable shadow filter on top of the base filter (multiplying the quality for free)
- PCSS (area-like soft-shadows) and PCF (uniform soft-shadows) filtering for all lights
- AR/VR support for all shadows
- Full Shadows on all platforms where Unity supports shadows (requires SM3.0 or up)
- Cascade Blending on all shadow projections
- Inline sampling support. Avoids duplicating RenderTextures, uses built-in lights depthmaps
- Filter Quality Set: from 4 up to 128 samplers (scales from mobile up to cinematic CG)
- Fast Shadows. Using custom aggressive early bailing out algorithms. Soften shadows only in the penumbra area, skip fragments that are fully lit or fully occluded.
- Fall back do built-in Hard-Shadows without uninstalling libraries
- Bonus, custom shadows bias for all
Supported platforms:
Works locally by installing NGSS libraries or with remote cloud builds system by including the libraries directly into your shaders. Easy and quick setup.
Not compatible with DX9 and GLES1/2!
Compatible with AR/VR, DX11, DX12, PS4, XB1, SWITCH, GLCore, GLES3.0, Metal, Vulkan or equivalent APIs.
Requires a minimum of SM3.0 on supported APIs.
Supported Unity versions:
Unity 2017 up to 2023 (Built-in Renderer only). HDRP & URP support coming in the future.
Support:
- Stellar customer support. Custom inquiries and code modification for free. Most requests are answered almost instantly. Three years ago v1 launched, many updates and features implemented since then and lot of happy customers!
For any question, issue, bug, custom inquiry, custom framework or renderer integration please email support:
support@psychozinteractive.com
Features and Changes (v2.4.2.3):
- Fixed an issue when FrustumShadows is being used with multiple stacked cameras
Features and Changes (v2.4.2.2):
- Fixed an issue with directional light resolution not being restored to Quality Settings after manually setting it through the Directional component
Features and Changes (v2.4.2.1):
- Fixes unwanted artifacts with directional shadows caused by some variants
- Cascades blending variant is now disabled by default
- Removed icons from NGSS components
Features and Changes (v2.4.1):
- Covers an edge case for local shadows where screen position is computed in the fragment shader due to missing interpolation defines
Features and Changes (v2.4.0):
- This update has major changes to NGSS, so is important to uninstall NGSS libraries before upgrading to this version
- Overall improvements to all NGSS shadows, both quality and performance
- Frustum shadows now fully support both forward and deferred rendering with cascades on or off
- Removed the frustum shadows clipping pass
- Removed frustum shadows temporal filtering. Instead a jittering is implemented to leverage projects own temporal filtering
- Added support for spherical and linear early out for frustum shadows start distance to match directional shadows projection
- Added multi-blur iterations for frustum shadows, allows more blurry shadows
- Added frustum shadows resolution change
- You don't need to install directional libraries for cascaded shadows anymore (still need to install directional libraries for non-cascaded shadows or frustum shadows)
- Directional denoiser is now applied directly to the screen space shadows (aka cascaded shadows)
- Added the ability to switch between hard and soft shadows without having to remove NGSS libraries, for all shadows types
- Bias improvement for point shadows, you can now lower the bias even more (you might need to adjust your bias values if you see artifacts)
- Shadow screen position moved to the vertex shader, less fragment computations
- Removed shadow bias button from the installer as it creates issues with shaders that has custom ShadowCaster passes (you can still manually replace the file in the CGIncludes folder if you want)
- Added namespace PI.NGSS as required by Unity submission guidelines. Make sure to include that namespace if you access NGSS components in your code
- Updated documentation
Features and Changes (v2.3.9.1):
- Fixed a bug with Frustum Shadows not being shown
Features and Changes (v2.3.9):
- Fixed a bug with Directional Shadows and XR SPI
- Added support for Frustum Shadows in forward rendering
Features and Changes (v2.3.8.1):
- Fixed a bug with PCSS Spot shadows softness. You can now tweak it again through Shadows Strength value of Light components
Features and Changes (v2.3.8):
- Fixed a bug with Directional Shadows in Hard mode
- Added compatibility to the latest UBER version
Features and Changes (v2.3.7):
- Fixed a bug with Point Shadows or deferred rendering where optimization distance check was done with fragment direction instead of position
- Added Hard Shadows fallback to Directional Shadows as it was causing issues with reflections assets when rendering the scene with Hard Shadows
Features and Changes (v2.3.6):
- Fixed a bug in Directional Shadows where Soft-Shadows was unintentionally disabled by a keyword
Features and Changes (v2.3.5):
- Fixed a bug in Directional Shadows where PCSS was unintentionally disabled by PCSS keyword
Features and Changes (v2.3.4):
- Fixed a shader keyword bug in Frustum Shadows where shadows features where missing in builds
Features and Changes (v2.3.3):
- Improved noise algorithm stability. Allows for a great sampling reduction (eg: 4spp) while reducing noise shimmering over distance
- Changed samplers reduction algorithm, now computed at world space instead of view space for a better stabilization when the camera rotates
- Behavior change in NGSS_Local. By default the first instance of NGSS_Local is now the manager, no need to have more than one. Also display warnings if multiple instances of NGSS_Local is detected and shows the user how to correct it
Features and Changes (v2.3.2):
- Fixed Frustum Shadows opacity (value was being ignored)
Features and Changes (v2.3.1):
- Fixed NGSS library installer bug on Mac
Features and Changes (v2.3.0):
- Added a new optimization that interpolates and reduces sampling over a given distance
- Fixed the NGSS Libraries auto-installer, it perfectly works now
- Allow installation of NGSS Libraries from custom paths (path must be provided to the installer)
- Addition of a new optional Shadow Bias library (must be installed through the libraries installer)
- Denoiser can now be disabled without uninstalling the libraries
- Fixed a bug related to a Min attribute on NGSS scripts
- Fixed Frustum Shadows blending with Local lights
- Improved Shadowmask blending with real-time shadows
- NGSS scripts don't manage anymore Quality Settings and Graphics Settings (except for screen space shadows replacement)
- Full compatibility for custom frameworks such as Alloy, UBER and AFS (you don't need to make the changes anymore, just use them)
Note: Unity has deprecated Asset Store upload tools on Unity 5.6 which means the package can't be installed directly from the Asset Store in Unity 5.6. You have to download the package on a newever version of Unity and manually copy the Psychose Interactive folder in your project. The new Shadow Bias Library won't work with Unity 5.6 either. You can always email support if you need the compatible 5.6 version
Features and Changes (v2.2.5):
- Fixed a fade near distance bug in frustum shadows introduced in v2.2.4 (just import the package and you'll be good to go)
Features and Changes (v2.2.4):
- Added Frustum Shadows near distance property. Allows to skip and fade near-plane frustum shadows for users willing to display frustum shadows after a certain distance
Features and Changes (v2.2.3):
- Fixed an issue with frustum shadows blending with scene shadows
- Fixed a small frustum shadows clipping bug that slipped in v2.2.0
Features and Changes (v2.2.2):
- Fixed a dark lighting bug if NGSS_FrustumShadows script is not present in the scene
- Added the ability to select how you want your ray length to be treated (world space or screen space)
Features and Changes (v2.2.0):
- Infinite Frustum Shadows (first iteration on Deferred only, supports all light types)
- Macro improvements to point shadows bias
- Removed Quality Settings global stuff on Directional component (only shadowmap size can be tweaked)
- Updated documentation about Local shadows component
Features and Changes (v2.1.5):
- Blue noise shadows (the default shadows now). NGSS comes with various noise textures but you can use any noise with any pattern you want
- Minor tweaks to the Denoiser
Features and Changes (v2.1.1):
- Early bailing out improvements, same shadows but faster to render
- New improved Denoiser, faster and better with exposed options to tweak
- Directional PCSS near & far distances behave better
- Local PCSS near & far distances exposed on Local light component
- Added spot & point shadows blocker search bias, also exposed on the light component
- Removed & Replaced unnecessary conditional branches on all shadows types making them slightly faster
- Fixed a bug with spot shadows that created weird artifacts when light range was too large
- Minor improvements to dithering algorithm for all lights
- Minor improvement to point light bias
- Minor bug fix regarding cascades number in Quality Settings
- Updated documentation
Features and Changes (v2.0.8):
- Improved self-shadowing bias for Contact Shadows (fixed silly artifacts at sharp angles)
- Deferred Backface Optimization. Skip fragments that are not facing the light (Improved performance a lot)
- Deferred Backface Translucency. Let you set how the backface is lit (0 = black, 1 = no backface shadows). Deferred Backface options requires deferred rendering and Gbuffer normals.
- Added compiler define for NGSS_Local shadows NGSS_GLOBAL_OPACITY (useful to avoid compile errors if you update/install Unity and your custom shaders have references to NGSS_GLOBAL_OPACITY)
- Updated documentation
- Fixed a bug with NGSS_Directional component not updating shader global values if NGSS_NO_UPDATE_ON_PLAY was enabled. You don't need to re-install libraries with this update, only download the package from the store into your project.
Features and Changes (v2.0.6):
- Fixed two bugs with directional shadows in Forward rendering when Cascaded Shadows where disabled. One with shadows opacity and the other with the shadows softness not scaling well