205 lines
9.5 KiB
C#
205 lines
9.5 KiB
C#
using UnityEditor;
|
|
using UnityEngine;
|
|
|
|
namespace GameOldBoy.Rendering
|
|
{
|
|
[CustomEditor(typeof(TAAComponent))]
|
|
public class TAAComponentEditor : Editor
|
|
{
|
|
SerializedProperty m_Enabled;
|
|
SerializedProperty m_Blend;
|
|
SerializedProperty m_Quality;
|
|
SerializedProperty m_AntiGhosting;
|
|
SerializedProperty m_UseBlurSharpenFilter;
|
|
SerializedProperty m_UseBicubicFilter;
|
|
SerializedProperty m_UseClipAABB;
|
|
SerializedProperty m_UseDilation;
|
|
SerializedProperty m_UseTonemap;
|
|
SerializedProperty m_UseVarianceClipping;
|
|
SerializedProperty m_UseYCoCgSpace;
|
|
SerializedProperty m_Stability;
|
|
SerializedProperty m_SharpenStrength;
|
|
SerializedProperty m_HistorySharpening;
|
|
SerializedProperty m_Use4Tap;
|
|
TAAComponent taa;
|
|
bool showAdvanced;
|
|
TAAQuality _taaQuality_last;
|
|
|
|
void OnEnable()
|
|
{
|
|
m_Enabled = serializedObject.FindProperty("Enabled");
|
|
m_Blend = serializedObject.FindProperty("Blend");
|
|
m_Quality = serializedObject.FindProperty("Quality");
|
|
m_AntiGhosting = serializedObject.FindProperty("AntiGhosting");
|
|
m_UseBlurSharpenFilter = serializedObject.FindProperty("UseBlurSharpenFilter");
|
|
m_UseBicubicFilter = serializedObject.FindProperty("UseBicubicFilter");
|
|
m_UseClipAABB = serializedObject.FindProperty("UseClipAABB");
|
|
m_UseDilation = serializedObject.FindProperty("UseDilation");
|
|
m_UseTonemap = serializedObject.FindProperty("UseTonemap");
|
|
m_UseVarianceClipping = serializedObject.FindProperty("UseVarianceClipping");
|
|
m_UseYCoCgSpace = serializedObject.FindProperty("UseYCoCgSpace");
|
|
m_Stability = serializedObject.FindProperty("Stability");
|
|
m_SharpenStrength = serializedObject.FindProperty("SharpenStrength");
|
|
m_HistorySharpening = serializedObject.FindProperty("HistorySharpening");
|
|
m_Use4Tap = serializedObject.FindProperty("Use4Tap");
|
|
taa = (TAAComponent)target;
|
|
_taaQuality_last = taa.Quality;
|
|
}
|
|
|
|
public override void OnInspectorGUI()
|
|
{
|
|
serializedObject.Update();
|
|
EditorGUILayout.PropertyField(m_Enabled);
|
|
EditorGUILayout.PropertyField(m_Blend);
|
|
EditorGUILayout.PropertyField(m_AntiGhosting);
|
|
EditorGUILayout.PropertyField(m_Quality);
|
|
showAdvanced = EditorGUILayout.Foldout(showAdvanced, "Advanced");
|
|
if (_taaQuality_last != taa.Quality)
|
|
{
|
|
if (taa.Quality == TAAQuality.Custom)
|
|
{
|
|
showAdvanced = true;
|
|
}
|
|
_taaQuality_last = taa.Quality;
|
|
}
|
|
EditorGUI.indentLevel++;
|
|
switch (taa.Quality)
|
|
{
|
|
case TAAQuality.VeryLow:
|
|
taa.Use4Tap = true;
|
|
taa.UseBlurSharpenFilter = false;
|
|
taa.UseBicubicFilter = false;
|
|
taa.UseClipAABB = false;
|
|
taa.UseDilation = false;
|
|
taa.UseTonemap = false;
|
|
taa.UseVarianceClipping = false;
|
|
taa.UseYCoCgSpace = false;
|
|
GUI.enabled = false;
|
|
if (showAdvanced)
|
|
{
|
|
EditorGUILayout.PropertyField(m_Use4Tap);
|
|
if (!taa.Use4Tap)
|
|
{
|
|
EditorGUILayout.PropertyField(m_UseBlurSharpenFilter, new GUIContent("Use Sharpen Filter"));
|
|
}
|
|
EditorGUILayout.PropertyField(m_UseBicubicFilter);
|
|
EditorGUILayout.PropertyField(m_UseClipAABB);
|
|
EditorGUILayout.PropertyField(m_UseDilation);
|
|
EditorGUILayout.PropertyField(m_UseTonemap);
|
|
EditorGUILayout.PropertyField(m_UseVarianceClipping);
|
|
EditorGUILayout.PropertyField(m_UseYCoCgSpace, new GUIContent("Use YCoCg Space"));
|
|
}
|
|
GUI.enabled = true;
|
|
break;
|
|
case TAAQuality.Low:
|
|
taa.Use4Tap = false;
|
|
taa.UseBlurSharpenFilter = false;
|
|
taa.UseBicubicFilter = false;
|
|
taa.UseClipAABB = true;
|
|
taa.UseDilation = false;
|
|
taa.UseTonemap = false;
|
|
taa.UseVarianceClipping = true;
|
|
taa.UseYCoCgSpace = false;
|
|
GUI.enabled = false;
|
|
if (showAdvanced)
|
|
{
|
|
EditorGUILayout.PropertyField(m_Use4Tap);
|
|
if (!taa.Use4Tap)
|
|
{
|
|
EditorGUILayout.PropertyField(m_UseBlurSharpenFilter, new GUIContent("Use Sharpen Filter"));
|
|
}
|
|
EditorGUILayout.PropertyField(m_UseBicubicFilter);
|
|
EditorGUILayout.PropertyField(m_UseClipAABB);
|
|
EditorGUILayout.PropertyField(m_UseDilation);
|
|
EditorGUILayout.PropertyField(m_UseTonemap);
|
|
EditorGUILayout.PropertyField(m_UseVarianceClipping);
|
|
EditorGUILayout.PropertyField(m_UseYCoCgSpace, new GUIContent("Use YCoCg Space"));
|
|
}
|
|
GUI.enabled = true;
|
|
break;
|
|
case TAAQuality.Medium:
|
|
taa.Use4Tap = false;
|
|
taa.UseBlurSharpenFilter = false;
|
|
taa.UseBicubicFilter = false;
|
|
taa.UseClipAABB = true;
|
|
taa.UseDilation = false;
|
|
taa.UseTonemap = true;
|
|
taa.UseVarianceClipping = true;
|
|
taa.UseYCoCgSpace = true;
|
|
GUI.enabled = false;
|
|
if (showAdvanced)
|
|
{
|
|
EditorGUILayout.PropertyField(m_Use4Tap);
|
|
if (!taa.Use4Tap)
|
|
{
|
|
EditorGUILayout.PropertyField(m_UseBlurSharpenFilter, new GUIContent("Use Sharpen Filter"));
|
|
}
|
|
EditorGUILayout.PropertyField(m_UseBicubicFilter);
|
|
EditorGUILayout.PropertyField(m_UseClipAABB);
|
|
EditorGUILayout.PropertyField(m_UseDilation);
|
|
EditorGUILayout.PropertyField(m_UseTonemap);
|
|
EditorGUILayout.PropertyField(m_UseVarianceClipping);
|
|
EditorGUILayout.PropertyField(m_UseYCoCgSpace, new GUIContent("Use YCoCg Space"));
|
|
}
|
|
GUI.enabled = true;
|
|
break;
|
|
case TAAQuality.High:
|
|
taa.Use4Tap = false;
|
|
taa.UseBlurSharpenFilter = true;
|
|
taa.UseBicubicFilter = true;
|
|
taa.UseClipAABB = true;
|
|
taa.UseDilation = true;
|
|
taa.UseTonemap = true;
|
|
taa.UseVarianceClipping = true;
|
|
taa.UseYCoCgSpace = true;
|
|
GUI.enabled = false;
|
|
if (showAdvanced)
|
|
{
|
|
EditorGUILayout.PropertyField(m_Use4Tap);
|
|
if (!taa.Use4Tap)
|
|
{
|
|
EditorGUILayout.PropertyField(m_UseBlurSharpenFilter, new GUIContent("Use Sharpen Filter"));
|
|
}
|
|
EditorGUILayout.PropertyField(m_UseBicubicFilter);
|
|
EditorGUILayout.PropertyField(m_UseClipAABB);
|
|
EditorGUILayout.PropertyField(m_UseDilation);
|
|
EditorGUILayout.PropertyField(m_UseTonemap);
|
|
EditorGUILayout.PropertyField(m_UseVarianceClipping);
|
|
EditorGUILayout.PropertyField(m_UseYCoCgSpace, new GUIContent("Use YCoCg Space"));
|
|
}
|
|
GUI.enabled = true;
|
|
break;
|
|
case TAAQuality.Custom:
|
|
if (showAdvanced)
|
|
{
|
|
EditorGUILayout.PropertyField(m_Use4Tap);
|
|
if (!taa.Use4Tap)
|
|
{
|
|
EditorGUILayout.PropertyField(m_UseBlurSharpenFilter, new GUIContent("Use Sharpen Filter"));
|
|
}
|
|
EditorGUILayout.PropertyField(m_UseBicubicFilter);
|
|
EditorGUILayout.PropertyField(m_UseClipAABB);
|
|
EditorGUILayout.PropertyField(m_UseDilation);
|
|
EditorGUILayout.PropertyField(m_UseTonemap);
|
|
EditorGUILayout.PropertyField(m_UseVarianceClipping);
|
|
EditorGUILayout.PropertyField(m_UseYCoCgSpace, new GUIContent("Use YCoCg Space"));
|
|
}
|
|
break;
|
|
}
|
|
EditorGUI.indentLevel--;
|
|
if (taa.UseVarianceClipping)
|
|
{
|
|
EditorGUILayout.PropertyField(m_Stability);
|
|
}
|
|
if (taa.UseBlurSharpenFilter && !taa.Use4Tap)
|
|
{
|
|
EditorGUILayout.PropertyField(m_SharpenStrength);
|
|
}
|
|
if (taa.UseBicubicFilter)
|
|
{
|
|
EditorGUILayout.PropertyField(m_HistorySharpening);
|
|
}
|
|
serializedObject.ApplyModifiedProperties();
|
|
}
|
|
}
|
|
} |