You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

71 lines
2.6 KiB

  1. using UnityEngine;
  2. using UnityEngine.PostProcessing;
  3. namespace UnityEditor.PostProcessing
  4. {
  5. using Method = AntialiasingModel.Method;
  6. using Settings = AntialiasingModel.Settings;
  7. [PostProcessingModelEditor(typeof(AntialiasingModel))]
  8. public class AntialiasingModelEditor : PostProcessingModelEditor
  9. {
  10. SerializedProperty m_Method;
  11. SerializedProperty m_FxaaPreset;
  12. SerializedProperty m_TaaJitterSpread;
  13. SerializedProperty m_TaaSharpen;
  14. SerializedProperty m_TaaStationaryBlending;
  15. SerializedProperty m_TaaMotionBlending;
  16. static string[] s_MethodNames =
  17. {
  18. "Fast Approximate Anti-aliasing",
  19. "Temporal Anti-aliasing"
  20. };
  21. public override void OnEnable()
  22. {
  23. m_Method = FindSetting((Settings x) => x.method);
  24. m_FxaaPreset = FindSetting((Settings x) => x.fxaaSettings.preset);
  25. m_TaaJitterSpread = FindSetting((Settings x) => x.taaSettings.jitterSpread);
  26. m_TaaSharpen = FindSetting((Settings x) => x.taaSettings.sharpen);
  27. m_TaaStationaryBlending = FindSetting((Settings x) => x.taaSettings.stationaryBlending);
  28. m_TaaMotionBlending = FindSetting((Settings x) => x.taaSettings.motionBlending);
  29. }
  30. public override void OnInspectorGUI()
  31. {
  32. m_Method.intValue = EditorGUILayout.Popup("Method", m_Method.intValue, s_MethodNames);
  33. if (m_Method.intValue == (int)Method.Fxaa)
  34. {
  35. EditorGUILayout.PropertyField(m_FxaaPreset);
  36. }
  37. else if (m_Method.intValue == (int)Method.Taa)
  38. {
  39. if (QualitySettings.antiAliasing > 1)
  40. EditorGUILayout.HelpBox("Temporal Anti-Aliasing doesn't work correctly when MSAA is enabled.", MessageType.Warning);
  41. EditorGUILayout.LabelField("Jitter", EditorStyles.boldLabel);
  42. EditorGUI.indentLevel++;
  43. EditorGUILayout.PropertyField(m_TaaJitterSpread, EditorGUIHelper.GetContent("Spread"));
  44. EditorGUI.indentLevel--;
  45. EditorGUILayout.Space();
  46. EditorGUILayout.LabelField("Blending", EditorStyles.boldLabel);
  47. EditorGUI.indentLevel++;
  48. EditorGUILayout.PropertyField(m_TaaStationaryBlending, EditorGUIHelper.GetContent("Stationary"));
  49. EditorGUILayout.PropertyField(m_TaaMotionBlending, EditorGUIHelper.GetContent("Motion"));
  50. EditorGUI.indentLevel--;
  51. EditorGUILayout.Space();
  52. EditorGUILayout.PropertyField(m_TaaSharpen);
  53. }
  54. }
  55. }
  56. }