大修
This commit is contained in:
39
Assets/Shaders/ScriptablePostProcessor/Volumes/RadialBlur.cs
Normal file
39
Assets/Shaders/ScriptablePostProcessor/Volumes/RadialBlur.cs
Normal file
@@ -0,0 +1,39 @@
|
||||
using Echovoid.Runtime.Behavior.Rendering;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Rendering;
|
||||
using UnityEngine.Rendering.Universal;
|
||||
|
||||
namespace SLSUtilities.Rendering.PostProcessing
|
||||
{
|
||||
public enum RadialBlurQuality
|
||||
{
|
||||
RadialBlur_4Tap_Fatest = 0,
|
||||
RadialBlur_8Tap_Balance = 1,
|
||||
RadialBlur_12Tap = 2,
|
||||
RadialBlur_16Tap_Quality = 3,
|
||||
}
|
||||
|
||||
[System.Serializable, VolumeComponentMenu("SLS/Postprocessing/Radial Blur")]
|
||||
public class RadialBlur : ScriptablePostProcessorVolume
|
||||
{
|
||||
public override CustomPostProcessInjectionPoint InjectionPoint => CustomPostProcessInjectionPoint.BeforePostProcess;
|
||||
public override int OrderInInjectionPoint => 10;
|
||||
|
||||
public EnumParameter<RadialBlurQuality> qualityLevel = new (RadialBlurQuality.RadialBlur_8Tap_Balance);
|
||||
public ClampedFloatParameter blurRadius = new(0f, -1f, 1f);
|
||||
public ClampedFloatParameter radialCenterX = new(0.5f, 0f, 1f);
|
||||
public ClampedFloatParameter radialCenterY = new(0.5f, 0f, 1f);
|
||||
|
||||
public override string GetShaderName() => "SLS/Postprocessing/RadialBlur";
|
||||
|
||||
public override void Render(CommandBuffer cmd, ref RenderingData renderingData, RTHandle source, RTHandle target)
|
||||
{
|
||||
if (material == null) return;
|
||||
cmd.SetGlobalVector(InternalShaderHelpers.ID._RadialBlurParams,
|
||||
new Vector4(blurRadius.value * 0.02f, radialCenterX.value, radialCenterY.value));
|
||||
Blitter.BlitCameraTexture(cmd, source, target, material, (int)qualityLevel.value);
|
||||
}
|
||||
|
||||
public override bool IsActive() => !Mathf.Approximately(blurRadius.value, 0);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user