IllusionRP
Unity high-definition graphics plugin for Universal Render Pipelines.
Install / Use
/learn @AkiKurisu/IllusionRPREADME
IllusionRP
Unity high-definition graphics plugin for Universal Render Pipelines.
<img src="./Documentation~/images/banner.png"> </div>Highlights
- High-quality graphics features with one-click integration for your URP project
- Ready-to-use shaders and templates for Amplify Shader Editor
- Compatible with Unity 2022, 2023, and Unity 6 versions
Demo
<b>Sponza Demo</b>
IllusionRP demo for Sponza scene, see AkiKurisu/IllusionRP-Demo for more details.

<b>AIChara Remaster Demo</b>
IllusionRP is first designed to re-rendering game characters of @ILLUSION.
Demo is WIP, stay tuned.

Notice
Designed for <b>Forward</b> and <b>Forward+</b> rendering path, <b>Deferred</b> rendering path is not supported.
Add new shading model in deferred rendering path need modify the URP source code, which is hard to maintain. While using forward rendering path, we can add shaders without limitations.
Platforms
-
Android (Vulkan)
-
Standalone Windows (DX12)
Version
- Unity 6.3 (URP 17.3.0)
-
Unity 2022.3.62f1 (URP 14.0.12)
-
Unity 2023.2.22f1 (URP 16.0.6)
Install
Use git URL to download package by Unity Package Manager https://github.com/AkiKurisu/IllusionRP.git.
To fix compute shader compilation error when enable Forward+, copy the ./com.unity.render-pipelines.ps5~ folder to your project Package directory and rename it to com.unity.render-pipelines.ps5.
Setup
- Replace Post Process Data with
IllusionRPPostProcessDatain your URP renderer asset.
- Add
Illusion Graphicsrenderer feature in your URP renderer asset.
[!Tip] For best visual experience and performance, I recommend you to enable
Depth PrimingandForward+in renderer asset to use <b>Pre-Z Cluster Forward Rendering</b>.
Features
Introduction to included rendering features.
Skin
Support <b>Screen Space Subsurface Scattering (SSSSS)</b> ported from HDRP and fallback to <b>Spherical Gaussian Subsurface Scattering (SGSSS)</b> introduced by Matt - Approximating Subsurface Scattering With Spherical Gaussians when screen space sss is disabled.
<b>Dual Lobe Specular</b> provides a more natural skin effect.

Hair
Support <b>Kajiya-Kay</b> shading model with better performance.
Support <b>Marschner</b> shading model implemented by Unreal Engine.

<b>Multipass</b> is used (opaque & transparent).
<b>OIT</b> to solve hair transparent rendering order based on NVIDIA's Weighted Blended Order-Independent Transparency.
Fabric
Support <b>Anisotropy Specular</b>.

<b>Oren-Nayar</b> diffuse model.
<b>Sheen Scattering</b> with <b>Ashikhmin</b> (smooth) and <b>Charlie</b> (softer) model.
Hybrid Lit
The upgraded version of Universal Render Pipeline/Lit shader.
Support <b>PreIntegrated Imaged Based Lighting</b> ported from HDRP.
Support all <b>Screen Space Lighting</b> features in IllusionRP.
Support <b>Order Independent Transparency</b>.

[!TIP] You can directly replace the urp lit shader with
Universal Render Pipeline/Hybrid Litshader to get better lighting results.
Water
Water shader is modified from URP samples and has been converted to ASE version.
[!TIP] To sample full scene color instead of
_CameraOpaqueTexture, you need enablerequireHistoryColororScreenSpaceReflectioninIllusion Graphicsrenderer feature.
Shadows
Support <b>Per-Object Shadow</b> based on stalomeow/StarRailNPRShader to enhance character shadow quality.
Include <b>Contact Shadows</b> ported from HDRP to capture small details.

Support <b>Micro Shadows</b> ported from HDRP to simulate small details embedded in the Material of a GameObject, but not in its Mesh geometry.
Support <b>Fragment Shadow Bias</b> to reduce shadow acne.
[!Warning] Enable Fragment Shadow Bias will let IllusionRP shaders not compatiable with URP's built-in shader since we now apply shadow bias in receiver fragement shader instead of in caster vertex shader.
Include <b>Percentage-Closer Soft Shadow</b> from recaeee/RecaNoMaho_P for more realistic shadows.

[!TIP] Percentage-Closer Soft Shadow only works for Main Light Shadow Caster and Per-Object Shadow Caster.
Ambient Occlusion
Include <b>Ground Truth Ambient Occlusion</b> based on bladesero/GTAO_URP and HDRP implementation.
Support <b>AO Multi-Bounce</b> and <b>Separate AO</b> for diffuse and specular lighting.

Global Illumination
Include <b>Screen Space Reflection</b> based on EricHu33/URP_SSR and HDRP implementation.

Support 3 algorithms: <b>View Space Linear Search</b>, <b>Screen Space Linear Search</b> and <b>Hiz Search</b>.
Include <b>Precomputed Radiance Transfer Global Illumination (PRTGI)</b> based on AKGWSB/CasualPRT.

[!TIP]
PRTGIwill not affect materials that use baked lightmaps.
Support <b>Reflection Probe Normalization</b> based on Unity Adaptive Probe Volume when enable PRTGI to prevent light leaking.

Include <b>Screen Space Global Illumination</b> based on jiaozi158/UnitySSGIURP and HDRP implementation.

[!TIP] Recommend to use
PRTGIoutdoor and combine withSSGIindoor.Also,
SSGIwill not affect materials that use baked lightmaps.

Post Processing
Include <b>Automatic Exposure</b> ported from HDRP.

Include <b>Convolution Bloom</b> from StellarWarp/High-Performance-Convolution-Bloom-On-Unity.

Include <b>Volumetric Light</b> from CristianQiu/Unity-URP-Volumetric-Light.

Include <b>Advanced Tonemapping</b> with two kinds:
<b>Gran-Turismo</b> from yaoling1997/GT-ToneMapping better for anime characters.
<b>Filmic ACES</b> from Unreal Engine which is more artist friendly.

[!NOTE] Advanced Tonemapping only works in
High Dynamic Rangegrading mode.
Debugging
Recommended to install Chris to use Unreal-like console variables for debugging rendering features.
Install from git url
https://github.com/AkiKurisu/Chris

Chris also provides a Data-Driven Dynamic Volume Provider to support configuring volume profile per-platform.

Documents
Documents are generated with Devin AI, please create an issue if you find any problems.
Contribution
See Contributing for more details.
Credits
Thanks to the following great works and articles.
HigashiSan/Weighted-Blended-OIT-in-Unity-URP
Unity-Technologies/shading-rate-demo
StellarWarp/High-Performance-Convolution-Bloom-On-Unity
CristianQiu/Unity-URP-Volumetric-Light
Matt - Approximating Subsurface Scattering With Spherical Gaussians
[傻头傻脑亚古兽 - Unity实现SSS
