Update custom pass to global custom pass
This commit is contained in:
70
Runtime/HDRP/UTS Renderer/UTSRenderPass.cs
Normal file
70
Runtime/HDRP/UTS Renderer/UTSRenderPass.cs
Normal file
@@ -0,0 +1,70 @@
|
||||
using System.IO;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Rendering.HighDefinition;
|
||||
|
||||
namespace Unity.Toonshader
|
||||
{
|
||||
#if UNITY_EDITOR
|
||||
[UnityEditor.InitializeOnLoad]
|
||||
#endif
|
||||
public static class RegisterUTSRenderPass
|
||||
{
|
||||
private static readonly UTSRenderPassSetting _renderSetting;
|
||||
|
||||
private static readonly UTSOutlinePass _outlinePass;
|
||||
private static readonly UTSHairShadowPass _hairShadowPass;
|
||||
|
||||
static RegisterUTSRenderPass()
|
||||
{
|
||||
var assetPath = Path.GetFileNameWithoutExtension(UTSRenderPassSetting.RENDERER_SETTING_ASSET_PATH);
|
||||
_renderSetting = Resources.Load<UTSRenderPassSetting>(assetPath);
|
||||
|
||||
if (_renderSetting == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
_outlinePass = new()
|
||||
{
|
||||
name = "UTS Outline",
|
||||
layerMask = _renderSetting.outlineSetting.layerMask
|
||||
};
|
||||
|
||||
_hairShadowPass = new()
|
||||
{
|
||||
name = "UTS Hair Shadow Map",
|
||||
layerMask = _renderSetting.hairShadowSetting.casterLayerMask,
|
||||
targetColorBuffer = CustomPass.TargetBuffer.None,
|
||||
targetDepthBuffer = CustomPass.TargetBuffer.None,
|
||||
};
|
||||
|
||||
RegisterCustomPasses();
|
||||
}
|
||||
|
||||
[RuntimeInitializeOnLoadMethod]
|
||||
public static void RegisterCustomPasses()
|
||||
{
|
||||
CustomPassVolume.RegisterGlobalCustomPass(CustomPassInjectionPoint.AfterOpaqueAndSky, _outlinePass);
|
||||
CustomPassVolume.RegisterGlobalCustomPass(CustomPassInjectionPoint.AfterOpaqueDepthAndNormal, _hairShadowPass);
|
||||
|
||||
_outlinePass.enabled = _renderSetting.outlineSetting.enable;
|
||||
_hairShadowPass.SetEnable(_renderSetting.hairShadowSetting.enable);
|
||||
}
|
||||
|
||||
public static void UnregisterGlobalCustomPass()
|
||||
{
|
||||
CustomPassVolume.UnregisterGlobalCustomPass(_outlinePass);
|
||||
CustomPassVolume.UnregisterGlobalCustomPass(_hairShadowPass);
|
||||
_hairShadowPass.Release();
|
||||
}
|
||||
|
||||
public static void NotifyRendererSettingChanged()
|
||||
{
|
||||
_outlinePass.enabled = _renderSetting.outlineSetting.enable;
|
||||
_outlinePass.layerMask = _renderSetting.outlineSetting.layerMask;
|
||||
|
||||
_hairShadowPass.SetEnable(_renderSetting.hairShadowSetting.enable);
|
||||
_hairShadowPass.layerMask = _renderSetting.hairShadowSetting.casterLayerMask;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user