c1_unity/Assets/Scripts/Component/PostEffect/PostEffectRadialBlur.cs
2023-04-03 11:04:31 +08:00

50 lines
1.2 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace BF
{
public class PostEffectRadialBlur : AbsPostEffect
{
public Material RadialBlurMaterial { get; private set; }
public float BlurRadius = 0.02f;
public Vector2 RadialCenter = new Vector2(0.5f, 0.5f);
public PostEffectRadialBlur()
{
RadialBlurMaterial = BFMain.Instance.RenderMgr.RadialBlurMat;
}
public void SetBlurRadius(float blurRadius)
{
BlurRadius = blurRadius;
RefreshBlurRadius();
}
public void RefreshBlurRadius()
{
RadialBlurMaterial.SetFloat("_BlurRadius", BlurRadius);
}
public void SetRadialCenter(Vector2 value)
{
RadialCenter = value;
RefreshRadialCenter();
}
public void RefreshRadialCenter()
{
RadialBlurMaterial.SetVector("_RadialCenter", RadialCenter);
}
public override PostEffectContext OnRenderImage(PostEffectContext context)
{
var src = context.src;
var dest = context.dest;
RadialBlurMaterial.SetFloat("_BlurRadius", BlurRadius);
RadialBlurMaterial.SetVector("_RadialCenter", RadialCenter);
Graphics.Blit(src, dest, RadialBlurMaterial, 0);
return context;
}
}
}