PostProcessData.cs 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. #if UNITY_EDITOR
  2. using UnityEditor;
  3. using UnityEditor.ProjectWindowCallback;
  4. #endif
  5. using System;
  6. namespace UnityEngine.Rendering.Universal
  7. {
  8. [Serializable]
  9. public class PostProcessData : ScriptableObject
  10. {
  11. #if UNITY_EDITOR
  12. [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1812")]
  13. internal class CreatePostProcessDataAsset : EndNameEditAction
  14. {
  15. public override void Action(int instanceId, string pathName, string resourceFile)
  16. {
  17. var instance = CreateInstance<PostProcessData>();
  18. AssetDatabase.CreateAsset(instance, pathName);
  19. ResourceReloader.ReloadAllNullIn(instance, UniversalRenderPipelineAsset.packagePath);
  20. Selection.activeObject = instance;
  21. }
  22. }
  23. [MenuItem("Assets/Create/Rendering/Universal Render Pipeline/Post-process Data", priority = CoreUtils.assetCreateMenuPriority3)]
  24. static void CreatePostProcessData()
  25. {
  26. ProjectWindowUtil.StartNameEditingIfProjectWindowExists(0, CreateInstance<CreatePostProcessDataAsset>(), "CustomPostProcessData.asset", null, null);
  27. }
  28. #endif
  29. [Serializable, ReloadGroup]
  30. public sealed class ShaderResources
  31. {
  32. [Reload("Shaders/PostProcessing/StopNaN.shader")]
  33. public Shader stopNanPS;
  34. [Reload("Shaders/PostProcessing/SubpixelMorphologicalAntialiasing.shader")]
  35. public Shader subpixelMorphologicalAntialiasingPS;
  36. [Reload("Shaders/PostProcessing/GaussianDepthOfField.shader")]
  37. public Shader gaussianDepthOfFieldPS;
  38. [Reload("Shaders/PostProcessing/BokehDepthOfField.shader")]
  39. public Shader bokehDepthOfFieldPS;
  40. [Reload("Shaders/PostProcessing/CameraMotionBlur.shader")]
  41. public Shader cameraMotionBlurPS;
  42. [Reload("Shaders/PostProcessing/PaniniProjection.shader")]
  43. public Shader paniniProjectionPS;
  44. [Reload("Shaders/PostProcessing/LutBuilderLdr.shader")]
  45. public Shader lutBuilderLdrPS;
  46. [Reload("Shaders/PostProcessing/LutBuilderHdr.shader")]
  47. public Shader lutBuilderHdrPS;
  48. [Reload("Shaders/PostProcessing/Bloom.shader")]
  49. public Shader bloomPS;
  50. [Reload("Shaders/PostProcessing/UberPost.shader")]
  51. public Shader uberPostPS;
  52. [Reload("Shaders/PostProcessing/FinalPost.shader")]
  53. public Shader finalPostPassPS;
  54. }
  55. [Serializable, ReloadGroup]
  56. public sealed class TextureResources
  57. {
  58. // Pre-baked noise
  59. [Reload("Textures/BlueNoise16/L/LDR_LLL1_{0}.png", 0, 32)]
  60. public Texture2D[] blueNoise16LTex;
  61. // Post-processing
  62. [Reload(new[]
  63. {
  64. "Textures/FilmGrain/Thin01.png",
  65. "Textures/FilmGrain/Thin02.png",
  66. "Textures/FilmGrain/Medium01.png",
  67. "Textures/FilmGrain/Medium02.png",
  68. "Textures/FilmGrain/Medium03.png",
  69. "Textures/FilmGrain/Medium04.png",
  70. "Textures/FilmGrain/Medium05.png",
  71. "Textures/FilmGrain/Medium06.png",
  72. "Textures/FilmGrain/Large01.png",
  73. "Textures/FilmGrain/Large02.png"
  74. })]
  75. public Texture2D[] filmGrainTex;
  76. [Reload("Textures/SMAA/AreaTex.tga")]
  77. public Texture2D smaaAreaTex;
  78. [Reload("Textures/SMAA/SearchTex.tga")]
  79. public Texture2D smaaSearchTex;
  80. }
  81. public ShaderResources shaders;
  82. public TextureResources textures;
  83. }
  84. }