50 lines
1.2 KiB
C#
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;
|
|
}
|
|
}
|
|
} |