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

Commit c759e9f

Browse files
committed
Merge remote-tracking branch 'origin/v2' into xr_update
2 parents 2d42db1 + a9aa22e commit c759e9f

10 files changed

Lines changed: 410 additions & 360 deletions

File tree

PostProcessing/Editor/Effects/AmbientOcclusionEditor.cs

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ public sealed class AmbientOcclusionEditor : PostProcessEffectEditor<AmbientOccl
1111
SerializedParameterOverride m_Color;
1212
SerializedParameterOverride m_AmbientOnly;
1313
SerializedParameterOverride m_ThicknessModifier;
14+
SerializedParameterOverride m_DirectLightingStrength;
1415
SerializedParameterOverride m_Quality;
1516
SerializedParameterOverride m_Radius;
1617

@@ -21,23 +22,32 @@ public override void OnEnable()
2122
m_Color = FindParameterOverride(x => x.color);
2223
m_AmbientOnly = FindParameterOverride(x => x.ambientOnly);
2324
m_ThicknessModifier = FindParameterOverride(x => x.thicknessModifier);
25+
m_DirectLightingStrength = FindParameterOverride(x => x.directLightingStrength);
2426
m_Quality = FindParameterOverride(x => x.quality);
2527
m_Radius = FindParameterOverride(x => x.radius);
2628
}
2729

2830
public override void OnInspectorGUI()
2931
{
30-
if (RuntimeUtilities.scriptableRenderPipelineActive)
32+
int aoMode = m_Mode.value.intValue;
33+
34+
if (RuntimeUtilities.scriptableRenderPipelineActive && aoMode == (int)AmbientOcclusionMode.ScalableAmbientObscurance)
35+
{
36+
EditorGUILayout.HelpBox("Scalable ambient obscurance doesn't work with scriptable render pipelines.", MessageType.Warning);
37+
return;
38+
}
39+
40+
#if !UNITY_2017_1_OR_NEWER
41+
if (aoMode == (int)AmbientOcclusionMode.MultiScaleVolumetricObscurance)
3142
{
32-
EditorGUILayout.HelpBox("This effect doesn't work with scriptable render pipelines yet.", MessageType.Warning);
43+
EditorGUILayout.HelpBox("Multi-scale volumetric obscurance requires Unity 2017.1 or more.", MessageType.Warning);
3344
return;
3445
}
46+
#endif
3547

3648
PropertyField(m_Mode);
3749
PropertyField(m_Intensity);
3850

39-
int aoMode = m_Mode.value.intValue;
40-
4151
if (aoMode == (int)AmbientOcclusionMode.ScalableAmbientObscurance)
4252
{
4353
PropertyField(m_Radius);
@@ -49,8 +59,11 @@ public override void OnInspectorGUI()
4959
EditorGUILayout.HelpBox("Multi-scale volumetric obscurance requires compute shader support.", MessageType.Warning);
5060

5161
PropertyField(m_ThicknessModifier);
62+
63+
if (RuntimeUtilities.scriptableRenderPipelineActive)
64+
PropertyField(m_DirectLightingStrength);
5265
}
53-
66+
5467
PropertyField(m_Color);
5568

5669
if (Camera.main != null && Camera.main.actualRenderingPath == RenderingPath.DeferredShading && Camera.main.allowHDR)

PostProcessing/Editor/Tools/CubeLutAssetImporter.cs

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,24 @@ namespace UnityEditor.Rendering.PostProcessing
77
{
88
sealed class CubeLutAssetImporter : AssetPostprocessor
99
{
10+
static List<string> s_Excluded = new List<string>()
11+
{
12+
"Linear to sRGB r1",
13+
"Linear to Unity Log r1",
14+
"sRGB to Linear r1",
15+
"sRGB to Unity Log r1",
16+
"Unity Log to Linear r1",
17+
"Unity Log to sRGB r1"
18+
};
19+
1020
static void OnPostprocessAllAssets(string[] imported, string[] deleted, string[] moved, string[] movedFrom)
1121
{
1222
foreach (string path in imported)
1323
{
1424
string ext = Path.GetExtension(path);
15-
16-
if (string.IsNullOrEmpty(ext))
25+
string filename = Path.GetFileNameWithoutExtension(path);
26+
27+
if (string.IsNullOrEmpty(ext) || s_Excluded.Contains(filename))
1728
continue;
1829

1930
ext = ext.ToLowerInvariant();

PostProcessing/Editor/Tools/ProfileFactory.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ class ProfileFactory
1111
[MenuItem("Assets/Create/Post-processing Profile", priority = 201)]
1212
static void CreatePostProcessProfile()
1313
{
14-
var icon = EditorGUIUtility.FindTexture("ScriptableObject Icon");
15-
ProjectWindowUtil.StartNameEditingIfProjectWindowExists(0, ScriptableObject.CreateInstance<DoCreatePostProcessProfile>(), "New Post-processing Profile.asset", icon, null);
14+
//var icon = EditorGUIUtility.FindTexture("ScriptableObject Icon");
15+
ProjectWindowUtil.StartNameEditingIfProjectWindowExists(0, ScriptableObject.CreateInstance<DoCreatePostProcessProfile>(), "New Post-processing Profile.asset", null, null);
1616
}
1717

1818
internal static PostProcessProfile CreatePostProcessProfileAtPath(string path)

PostProcessing/Runtime/Effects/AmbientOcclusion.cs

Lines changed: 31 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ public sealed class AmbientOcclusionQualityParameter : ParameterOverride<Ambient
2828
public sealed class AmbientOcclusion : PostProcessEffectSettings
2929
{
3030
// Shared parameters
31-
[Tooltip("The ambient occlusion method to use. \"Modern\" is higher quality and faster on desktop & console platforms but requires compute shader support.")]
31+
[Tooltip("The ambient occlusion method to use. \"MSVO\" is higher quality and faster on desktop & console platforms but requires compute shader support.")]
3232
public AmbientOcclusionModeParameter mode = new AmbientOcclusionModeParameter { value = AmbientOcclusionMode.MultiScaleVolumetricObscurance };
3333

3434
[Range(0f, 4f), Tooltip("Degree of darkness added by ambient occlusion.")]
@@ -53,6 +53,10 @@ public sealed class AmbientOcclusion : PostProcessEffectSettings
5353
[Range(1f, 10f), Tooltip("Modifies thickness of occluders. This increases dark areas but also introduces dark halo around objects.")]
5454
public FloatParameter thicknessModifier = new FloatParameter { value = 1f };
5555

56+
// HDRP-only parameters
57+
[Range(0f, 1f), Tooltip("")]
58+
public FloatParameter directLightingStrength = new FloatParameter { value = 0f };
59+
5660
// SAO-only parameters
5761
[Tooltip("Radius of sample points, which affects extent of darkened areas.")]
5862
public FloatParameter radius = new FloatParameter { value = 0.25f };
@@ -63,11 +67,23 @@ public sealed class AmbientOcclusion : PostProcessEffectSettings
6367
public override bool IsEnabledAndSupported(PostProcessRenderContext context)
6468
{
6569
bool state = enabled.value
66-
&& intensity.value > 0f
67-
&& !RuntimeUtilities.scriptableRenderPipelineActive;
70+
&& intensity.value > 0f;
6871

69-
if (mode.value == AmbientOcclusionMode.MultiScaleVolumetricObscurance)
70-
state &= SystemInfo.supportsComputeShaders && SystemInfo.SupportsRenderTextureFormat(RenderTextureFormat.RFloat);
72+
if (mode.value == AmbientOcclusionMode.ScalableAmbientObscurance)
73+
{
74+
state &= !RuntimeUtilities.scriptableRenderPipelineActive;
75+
}
76+
else if (mode.value == AmbientOcclusionMode.MultiScaleVolumetricObscurance)
77+
{
78+
#if UNITY_2017_1_OR_NEWER
79+
state &= SystemInfo.supportsComputeShaders
80+
&& SystemInfo.SupportsRenderTextureFormat(RenderTextureFormat.RFloat)
81+
&& SystemInfo.SupportsRenderTextureFormat(RenderTextureFormat.RHalf)
82+
&& SystemInfo.SupportsRenderTextureFormat(RenderTextureFormat.R8);
83+
#else
84+
state = false;
85+
#endif
86+
}
7187

7288
return state;
7389
}
@@ -122,6 +138,16 @@ public override void Release()
122138
m.Release();
123139
}
124140

141+
public ScalableAO GetScalableAO()
142+
{
143+
return (ScalableAO)m_Methods[(int)AmbientOcclusionMode.ScalableAmbientObscurance];
144+
}
145+
146+
public MultiScaleVO GetMultiScaleVO()
147+
{
148+
return (MultiScaleVO)m_Methods[(int)AmbientOcclusionMode.MultiScaleVolumetricObscurance];
149+
}
150+
125151
// Unused
126152
public override void Render(PostProcessRenderContext context)
127153
{

0 commit comments

Comments
 (0)