Files
com.misaki.hdrp-toon/Runtime/UTS Renderer/UTSRenderPassRegistrar.cs
Misaki 018300e046 Folder clean up;
Added Emissive;
2025-01-29 12:27:09 +09:00

69 lines
2.2 KiB
C#

using UnityEngine;
using UnityEngine.Rendering.HighDefinition;
namespace Misaki.HdrpToon
{
#if UNITY_EDITOR
[UnityEditor.InitializeOnLoad]
#endif
public static class UTSRenderPassRegistrar
{
private static UTSRenderPassSettings _renderSetting;
private static UTSPass _utsPass;
private static UTSOutlinePass _outlinePass;
static UTSRenderPassRegistrar() => RegisterCustomPasses();
[RuntimeInitializeOnLoadMethod]
public static void RegisterCustomPasses()
{
_renderSetting = UTSRenderPassSettings.GetOrCreateSettings();
if (_renderSetting == null)
{
return;
}
_utsPass = new UTSPass()
{
name = "UTS Pass",
targetColorBuffer = CustomPass.TargetBuffer.None,
targetDepthBuffer = CustomPass.TargetBuffer.None,
};
_outlinePass = new()
{
name = "UTS Outline",
targetColorBuffer = CustomPass.TargetBuffer.Camera,
targetDepthBuffer = CustomPass.TargetBuffer.Camera,
};
CustomPassVolume.RegisterUniqueGlobalCustomPass(CustomPassInjectionPoint.BeforeRendering, _utsPass);
CustomPassVolume.RegisterUniqueGlobalCustomPass(CustomPassInjectionPoint.BeforePostProcess, _outlinePass);
NotifyRendererSettingChanged();
}
public static void UnregisterGlobalCustomPass()
{
CustomPassVolume.UnregisterGlobalCustomPass(_utsPass);
CustomPassVolume.UnregisterGlobalCustomPass(_outlinePass);
}
public static void NotifyRendererSettingChanged()
{
if (_utsPass == null || _outlinePass == null)
{
return;
}
_utsPass.EnableHairShadow = _renderSetting.hairShadowSetting.enable;
_utsPass.HairShadowQuality = _renderSetting.hairShadowSetting.quality;
_utsPass.EnableHairBlending = _renderSetting.hairBlendingSetting.enable;
_utsPass.HairBlendingQuality = _renderSetting.hairBlendingSetting.quality;
_outlinePass.enabled = _renderSetting.outlineSetting.enable;
}
}
}