Skip to content

Unity high-definition graphics plugin for Universal Render Pipelines.

License

Notifications You must be signed in to change notification settings

unitycoder/IllusionRP

 
 

Repository files navigation

IllusionRP

Unity high-definition graphics plugin for Universal Render Pipelines.

Highlights

  • High-quality graphics features with one-click integration for your URP project
  • Ready-to-use shaders and templates for Amplify Shader Editor

Demo

IllusionRP is first designed to re-rendering game characters of @ILLUSION.

AIChara Remade Demo is WIP, stay tuned.

Showcase

Notice

Designed for Forward and Forward+ rendering path, Deferred 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 2022.3.62

  • URP 14.0.12

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

  1. Replace Post Process Data with IllusionRPPostProcessData in your URP renderer asset. Post Process Data
  2. Add Illusion Graphics renderer feature in your URP renderer asset. Renderer Feature

Tip

For best visual experience and performance, I recommend you to enable Depth Priming and Forward+ in renderer asset to use Pre-Z Cluster Forward Rendering.

Features

Introduction to included rendering features.

Skin

Support Screen Space Subsurface Scattering (SSSSS) ported from HDRP and fallback to Spherical Gaussian Subsurface Scattering (SGSSS) introduced by Matt - Approximating Subsurface Scattering With Spherical Gaussians when screen space sss is disabled.

Dual Lobe Specular provides a more natural skin effect.

SSS

Hair

Support Kajiya-Kay shading model with better performance.

Support Marschner shading model implemented by Unreal Engine.

Hair Shading

Multipass is used (opaque & transparent).

OIT to solve hair transparent rendering order based on NVIDIA's Weighted Blended Order-Independent Transparency.

Fabric

Support Anisotropy Specular.

Anisotropy

Oren-Nayar diffuse model.

Sheen Scattering with Ashikhmin (smooth) and Charlie (softer) model.

Hybrid Lit

The upgraded version of Universal Render Pipeline/Lit shader.

Support PreIntegrated Imaged Based Lighting ported from HDRP.

Support all Screen Space Lighting features in IllusionRP.

Support Order Independent Transparency.

Hybrid Lit

Tip

You can directly replace the urp lit shader with Universal Render Pipeline/Hybrid Lit shader 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 enable requireHistoryColor or ScreenSpaceReflection in Illusion Graphics renderer feature.

Shadows

Support Per-Object Shadow based on stalomeow/StarRailNPRShader to enhance character shadow quality.

Include Contact Shadows ported from HDRP to capture small details.

Contact Shadows

Support Fragment Shadow Bias 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 Percentage-Closer Soft Shadow from recaeee/RecaNoMaho_P for more realistic shadows.

PCSS

Tip

Percentage-Closer Soft Shadow only works for Main Light Shadow Caster and Per-Object Shadow Caster.

Ambient Occlusion

Include Ground Truth Ambient Occlusion based on bladesero/GTAO_URP and HDRP implementation.

Support AO Multi-Bounce and Separate AO for diffuse and specular lighting.

GTAO

Global Illumination

Include Screen Space Reflection based on EricHu33/URP_SSR and HDRP implementation.

SSR

Support 3 algorithms: View Space Linear Search, Screen Space Linear Search and Hiz Search.

Include Precomputed Radiance Transfer Global Illumination (PRTGI) based on AKGWSB/CasualPRT.

PRTGI

Tip

PRTGI will not affect materials that use baked lightmaps.

Support Reflection Probe Normalization based on Unity Adaptive Probe Volume when enable PRTGI to prevent light leaking.

Reflection Probe Normalization

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

SSGI

Tip

Recommend to use PRTGI outdoor and combine with SSGI indoor.

SSGI + PRTGI

Post Processing

Include Automatic Exposure ported from HDRP.

Exposure

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

Bloom

Include Volumetric Light from CristianQiu/Unity-URP-Volumetric-Light.

Volumetric Light

Include Advanced Tonemapping with two kinds:

Gran-Turismo from yaoling1997/GT-ToneMapping better for anime characters.

Filmic ACES from Unreal Engine which is more artist friendly.

Tonemapping

Note

Advanced Tonemapping only works in High Dynamic Range grading 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

Console Variable

Gameplay Integration

Recommended to install Chris.Gameplay which provides a in-game graphics setting solution.

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

Install from git url https://github.com/AkiKurisu/Chris.Gameplay

Dynamic Volume

Documents

Documents are generated with Devin AI, please create an issue if you find any problems.

Shaders

Lighting

Render Pipeline

Optimization

Contribution

See Contributing for more details.

Credits

Thanks to the following great works and articles.

bladesero/GTAO_URP

stalomeow/StarRailNPRShader

ecidevilin/KhaosLWRP

EricHu33/URP_SSR

AKGWSB/CasualPRT

HigashiSan/Weighted-Blended-OIT-in-Unity-URP

Unity-Technologies/Graphics

yaoling1997/GT-ToneMapping

StellarWarp/High-Performance-Convolution-Bloom-On-Unity

CristianQiu/Unity-URP-Volumetric-Light

recaeee/RecaNoMaho_P

jiaozi158/UnitySSGIURP

Matt - Approximating Subsurface Scattering With Spherical Gaussians

傻头傻脑亚古兽 - Unity实现SSS皮肤次表面散射

jplee - Extra technique for Skin shader by URP

jplee - UE4 ACES Tone mapping port URP

Naughty Dog - The Process of Creating Volumetric-based Materials in Uncharted 4

NVIDIA - Weighted Blended Order-Independent Transparency

Casual Effects - Weighted, Blended Order-Independent Transparency

ZZNEWCLEAR13 - 在URP的片元着色器中应用阴影偏移

Articles

Technical articles related to IllusionRP.

如何在Unity URP中让头发渲染更丝滑

UPR Screen Space Reflection实践

Unity预计算辐照度全局光照PRTGI实践与拓展(上)

Unity预计算辐照度全局光照PRTGI实践与拓展(下)

License

Licensed under the Unity Companion License for Unity-dependent projects--see Unity Companion License.

Unless expressly provided otherwise, the Software under this license is made available strictly on an "AS IS" BASIS WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED. Please review the license for details on these and other terms and conditions.

For integrated third-party code, please refer to their licenses included in the package.

About

Unity high-definition graphics plugin for Universal Render Pipelines.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • ShaderLab 47.2%
  • C# 37.3%
  • HLSL 15.5%