Skip to content
This repository was archived by the owner on Nov 30, 2020. It is now read-only.

Commit 96bf37d

Browse files
committed
Added a "Force Forward Compatibility" toggle on AO
Forces compatibility with Forward rendered objects when working with the Deferred rendering path.
1 parent a26774e commit 96bf37d

4 files changed

Lines changed: 12 additions & 4 deletions

File tree

PostProcessing/Editor/Models/AmbientOcclusionModelEditor.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ public class AmbientOcclusionModelEditor : PostProcessingModelEditor
1111
SerializedProperty m_Radius;
1212
SerializedProperty m_SampleCount;
1313
SerializedProperty m_Downsampling;
14+
SerializedProperty m_ForceForwardCompatibility;
1415
SerializedProperty m_AmbientOnly;
1516
SerializedProperty m_HighPrecision;
1617

@@ -20,6 +21,7 @@ public override void OnEnable()
2021
m_Radius = FindSetting((Settings x) => x.radius);
2122
m_SampleCount = FindSetting((Settings x) => x.sampleCount);
2223
m_Downsampling = FindSetting((Settings x) => x.downsampling);
24+
m_ForceForwardCompatibility = FindSetting((Settings x) => x.forceForwardCompatibility);
2325
m_AmbientOnly = FindSetting((Settings x) => x.ambientOnly);
2426
m_HighPrecision = FindSetting((Settings x) => x.highPrecision);
2527
}
@@ -30,8 +32,11 @@ public override void OnInspectorGUI()
3032
EditorGUILayout.PropertyField(m_Radius);
3133
EditorGUILayout.PropertyField(m_SampleCount);
3234
EditorGUILayout.PropertyField(m_Downsampling);
33-
EditorGUILayout.PropertyField(m_AmbientOnly, EditorGUIHelper.GetContent("Ambient Only (Deferred + HDR)"));
35+
EditorGUILayout.PropertyField(m_ForceForwardCompatibility);
3436
EditorGUILayout.PropertyField(m_HighPrecision, EditorGUIHelper.GetContent("High Precision (Forward)"));
37+
38+
using (new EditorGUI.DisabledGroupScope(m_ForceForwardCompatibility.boolValue))
39+
EditorGUILayout.PropertyField(m_AmbientOnly, EditorGUIHelper.GetContent("Ambient Only (Deferred + HDR)"));
3540
}
3641
}
3742
}

PostProcessing/Runtime/Components/AmbientOcclusionComponent.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ OcclusionSource occlusionSource
3939
{
4040
get
4141
{
42-
if (context.isGBufferAvailable)
42+
if (context.isGBufferAvailable && !model.settings.forceForwardCompatibility)
4343
return OcclusionSource.GBuffer;
4444

4545
if (model.settings.highPrecision && !context.isGBufferAvailable)
@@ -51,7 +51,7 @@ OcclusionSource occlusionSource
5151

5252
bool ambientOnlySupported
5353
{
54-
get { return context.isHdr && model.settings.ambientOnly && context.isGBufferAvailable; }
54+
get { return context.isHdr && model.settings.ambientOnly && context.isGBufferAvailable && !model.settings.forceForwardCompatibility; }
5555
}
5656

5757
public override bool active

PostProcessing/Runtime/Models/AmbientOcclusionModel.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@ public struct Settings
2828
[Tooltip("Halves the resolution of the effect to increase performance.")]
2929
public bool downsampling;
3030

31+
[Tooltip("Forces compatibility with Forward rendered objects when working with the Deferred rendering path.")]
32+
public bool forceForwardCompatibility;
33+
3134
[Tooltip("Enables the ambient-only mode in that the effect only affects ambient lighting. This mode is only available with the Deferred rendering path and HDR rendering.")]
3235
public bool ambientOnly;
3336

@@ -44,6 +47,7 @@ public static Settings defaultSettings
4447
radius = 0.3f,
4548
sampleCount = SampleCount.Medium,
4649
downsampling = true,
50+
forceForwardCompatibility = false,
4751
ambientOnly = false,
4852
highPrecision = false
4953
};

PostProcessing/Runtime/PostProcessingBehaviour.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,6 @@ void OnPreCull()
9797
// - Temporal Antialiasing
9898
// - Depth of Field
9999
// - Motion blur
100-
// - Grain
101100
m_RenderingInSceneView = UnityEditor.SceneView.currentDrawingSceneView != null
102101
&& UnityEditor.SceneView.currentDrawingSceneView.camera == m_Camera;
103102
#endif

0 commit comments

Comments
 (0)