RadialBlurTexAddEvent.cs 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. using System;
  2. using UnityEngine;
  3. namespace Xft
  4. {
  5. public class RadialBlurTexAddEvent : CameraEffectEvent
  6. {
  7. public RadialBlurTexAddEvent(XftEventComponent owner) : base(CameraEffectEvent.EType.RadialBlurMask, owner)
  8. {
  9. this.RadialBlurShader = owner.RadialBlurTexAddShader;
  10. this.Mask = owner.RadialBlurMask;
  11. }
  12. public Material MyMaterial
  13. {
  14. get
  15. {
  16. if (this.m_material == null)
  17. {
  18. this.m_material = new Material(this.RadialBlurShader);
  19. this.m_material.hideFlags = HideFlags.HideAndDontSave;
  20. }
  21. return this.m_material;
  22. }
  23. }
  24. public override bool CheckSupport()
  25. {
  26. bool result = true;
  27. if (!SystemInfo.supportsImageEffects)
  28. {
  29. result = false;
  30. }
  31. if (!this.MyMaterial.shader.isSupported)
  32. {
  33. result = false;
  34. }
  35. return result;
  36. }
  37. public override void OnRenderImage(RenderTexture source, RenderTexture destination)
  38. {
  39. if (this.m_material == null)
  40. {
  41. return;
  42. }
  43. this.MyMaterial.SetTexture("_Mask", this.Mask);
  44. this.MyMaterial.SetFloat("_SampleDist", this.m_owner.RBMaskSampleDist);
  45. this.MyMaterial.SetFloat("_SampleStrength", this.m_strength);
  46. Graphics.Blit(source, destination, this.m_material);
  47. }
  48. public override void Update(float deltaTime)
  49. {
  50. this.m_elapsedTime += deltaTime;
  51. if (this.m_owner.RBMaskStrengthType == MAGTYPE.Fixed)
  52. {
  53. this.m_strength = this.m_owner.RBMaskSampleStrength;
  54. }
  55. else if (this.m_owner.RBMaskStrengthType == MAGTYPE.Curve_OBSOLETE)
  56. {
  57. this.m_strength = this.m_owner.RBMaskSampleStrengthCurve.Evaluate(this.m_elapsedTime);
  58. }
  59. else
  60. {
  61. this.m_strength = this.m_owner.RBMaskSampleStrengthCurveX.Evaluate(this.m_elapsedTime);
  62. }
  63. }
  64. protected float m_strength;
  65. protected Material m_material;
  66. public Shader RadialBlurShader;
  67. public Texture2D Mask;
  68. }
  69. }