PostProcessResources.cs 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. using System;
  2. namespace UnityEngine.Rendering.PostProcessing
  3. {
  4. /// <summary>
  5. /// This asset is used to store references to shaders and other resources we might need at
  6. /// runtime without having to use a `Resources` folder. This allows for better memory management,
  7. /// better dependency tracking and better interoperability with asset bundles.
  8. /// </summary>
  9. public sealed class PostProcessResources : ScriptableObject
  10. {
  11. [Serializable]
  12. public sealed class Shaders
  13. {
  14. public Shader bloom;
  15. public Shader copy;
  16. public Shader copyStd;
  17. public Shader copyStdFromTexArray;
  18. public Shader copyStdFromDoubleWide;
  19. public Shader discardAlpha;
  20. public Shader depthOfField;
  21. public Shader finalPass;
  22. public Shader grainBaker;
  23. public Shader motionBlur;
  24. public Shader temporalAntialiasing;
  25. public Shader subpixelMorphologicalAntialiasing;
  26. public Shader texture2dLerp;
  27. public Shader uber;
  28. public Shader lut2DBaker;
  29. public Shader lightMeter;
  30. public Shader gammaHistogram;
  31. public Shader waveform;
  32. public Shader vectorscope;
  33. public Shader debugOverlays;
  34. public Shader deferredFog;
  35. public Shader scalableAO;
  36. public Shader multiScaleAO;
  37. public Shader screenSpaceReflections;
  38. public Shaders Clone()
  39. {
  40. return (Shaders)MemberwiseClone();
  41. }
  42. }
  43. [Serializable]
  44. public sealed class ComputeShaders
  45. {
  46. public ComputeShader autoExposure;
  47. public ComputeShader exposureHistogram;
  48. public ComputeShader lut3DBaker;
  49. public ComputeShader texture3dLerp;
  50. public ComputeShader gammaHistogram;
  51. public ComputeShader waveform;
  52. public ComputeShader vectorscope;
  53. public ComputeShader multiScaleAODownsample1;
  54. public ComputeShader multiScaleAODownsample2;
  55. public ComputeShader multiScaleAORender;
  56. public ComputeShader multiScaleAOUpsample;
  57. public ComputeShader gaussianDownsample;
  58. public ComputeShaders Clone()
  59. {
  60. return (ComputeShaders)MemberwiseClone();
  61. }
  62. }
  63. [Serializable]
  64. public sealed class SMAALuts
  65. {
  66. public Texture2D area;
  67. public Texture2D search;
  68. }
  69. public Texture2D[] blueNoise64;
  70. public Texture2D[] blueNoise256;
  71. public SMAALuts smaaLuts;
  72. public Shaders shaders;
  73. public ComputeShaders computeShaders;
  74. #if UNITY_EDITOR
  75. public delegate void ChangeHandler();
  76. public ChangeHandler changeHandler;
  77. void OnValidate()
  78. {
  79. if (changeHandler != null)
  80. changeHandler();
  81. }
  82. #endif
  83. }
  84. }