Main/Assets/Launcher/ExternalLibs/PostEffects/DistortEffectSimple.cs
2025-01-25 04:38:09 +08:00

55 lines
1.7 KiB
C#

using UnityEngine;
using UnityStandardAssets.ImageEffects;
namespace Thousandto.Launcher.ExternalLibs
{
[ExecuteInEditMode]
[RequireComponent(typeof(Camera))]
[AddComponentMenu("Image Effects/DistortEffect/DistortEffect(Simple)")]
public class DistortEffectSimple : PostEffectsBase
{
[Range(0.0f, 1.0f)]
public float DistortTimeFactor = 0.15f;
//扭曲的强度
[Range(0.0f, 0.2f)]
public float DistortStrength = 0.01f;
//噪声图
public Texture NoiseTexture = null;
//降采样系数
public int downSample = 2;
private Camera mainCam = null;
private Material _Material = null;
private Shader _Shader = null;
public void OnRenderImage(RenderTexture source, RenderTexture destination)
{
if (_Material)
{
_Material.SetTexture("_NoiseTex", NoiseTexture);
_Material.SetFloat("_DistortTimeFactor", DistortTimeFactor);
_Material.SetFloat("_DistortStrength", DistortStrength);
_Material.SetTexture("_MaskTex", Texture2D.whiteTexture);
Graphics.Blit(source, destination, _Material);
}
else
{
Graphics.Blit(source, destination);
}
}
public override bool CheckResources()
{
CheckSupport(false);
_Shader = ShaderFactory.Find("Ares/DistortEffect/DistortEffect");
_Material = CheckShaderAndCreateMaterial(_Shader, _Material);
if (!isSupported)
ReportAutoDisable();
return isSupported;
}
}
}