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

Commit c37c257

Browse files
committed
Expose vignette publicly
1 parent a9aa22e commit c37c257

4 files changed

Lines changed: 16 additions & 7 deletions

File tree

PostProcessing/Editor/Effects/ScreenSpaceReflectionsEditor.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ public sealed class ScreenSpaceReflectionsEditor : PostProcessEffectEditor<Scree
1313
SerializedParameterOverride m_MaximumMarchDistance;
1414
SerializedParameterOverride m_DistanceFade;
1515
SerializedParameterOverride m_Attenuation;
16+
SerializedParameterOverride m_Vignette;
1617

1718
public override void OnEnable()
1819
{
@@ -23,6 +24,7 @@ public override void OnEnable()
2324
m_MaximumMarchDistance = FindParameterOverride(x => x.maximumMarchDistance);
2425
m_DistanceFade = FindParameterOverride(x => x.distanceFade);
2526
m_Attenuation = FindParameterOverride(x => x.attenuation);
27+
m_Vignette = FindParameterOverride(x => x.vignette);
2628
}
2729

2830
public override void OnInspectorGUI()
@@ -53,6 +55,7 @@ public override void OnInspectorGUI()
5355
PropertyField(m_MaximumMarchDistance);
5456
PropertyField(m_DistanceFade);
5557
PropertyField(m_Attenuation);
58+
PropertyField(m_Vignette);
5659
}
5760
}
5861
}

PostProcessing/Runtime/Effects/ScreenSpaceReflections.cs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@ public enum ScreenSpaceReflectionResolution
1616
}
1717

1818
[Serializable]
19-
public sealed class ScreenSpaceReflectionPresetParameter : ParameterOverride<ScreenSpaceReflectionPreset> {}
19+
public sealed class ScreenSpaceReflectionPresetParameter : ParameterOverride<ScreenSpaceReflectionPreset> { }
2020

2121
[Serializable]
22-
public sealed class ScreenSpaceReflectionResolutionParameter : ParameterOverride<ScreenSpaceReflectionResolution> {}
22+
public sealed class ScreenSpaceReflectionResolutionParameter : ParameterOverride<ScreenSpaceReflectionResolution> { }
2323

2424
[Serializable]
2525
[PostProcess(typeof(ScreenSpaceReflectionsRenderer), "Unity/Screen-space reflections")]
@@ -46,6 +46,9 @@ public sealed class ScreenSpaceReflections : PostProcessEffectSettings
4646
[Range(0f, 1f), Tooltip("Fades reflections close to the screen borders.")]
4747
public FloatParameter attenuation = new FloatParameter { value = 0.25f };
4848

49+
[Range(0f, 1f), Tooltip("Fades reflections close to the screen-edges.")]
50+
public FloatParameter vignette = new FloatParameter { value = 0.5f };
51+
4952
public override bool IsEnabledAndSupported(PostProcessRenderContext context)
5053
{
5154
return enabled
@@ -163,6 +166,7 @@ public override void Render(PostProcessRenderContext context)
163166
sheet.properties.SetMatrix(ShaderIDs.ScreenSpaceProjectionMatrix, screenSpaceProjectionMatrix);
164167
sheet.properties.SetVector(ShaderIDs.Params, new Vector4(settings.attenuation.value, settings.distanceFade.value, settings.maximumMarchDistance.value, lodCount));
165168
sheet.properties.SetVector(ShaderIDs.Params2, new Vector4((float)context.width / (float)context.height, (float)size / (float)noiseTex.width, settings.thickness.value, settings.maximumIterationCount.value));
169+
sheet.properties.SetVector(ShaderIDs.Params3, new Vector4((float)settings.vignette.value, 0.25f, 0f, 0f));
166170

167171
cmd.GetTemporaryRT(ShaderIDs.Test, size, size, 0, FilterMode.Point, context.sourceFormat);
168172
cmd.BlitFullscreenTriangle(context.source, ShaderIDs.Test, sheet, (int)Pass.Test);

PostProcessing/Runtime/Utils/ShaderIDs.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ static class ShaderIDs
1111
internal static readonly int Sharpness = Shader.PropertyToID("_Sharpness");
1212
internal static readonly int FinalBlendParameters = Shader.PropertyToID("_FinalBlendParameters");
1313
internal static readonly int HistoryTex = Shader.PropertyToID("_HistoryTex");
14-
14+
1515
internal static readonly int SMAA_Flip = Shader.PropertyToID("_SMAA_Flip");
1616
internal static readonly int SMAA_Flop = Shader.PropertyToID("_SMAA_Flop");
1717

@@ -38,7 +38,7 @@ static class ShaderIDs
3838
internal static readonly int Combined1 = Shader.PropertyToID("Combined1");
3939
internal static readonly int Combined2 = Shader.PropertyToID("Combined2");
4040
internal static readonly int Combined3 = Shader.PropertyToID("Combined3");
41-
41+
4242
internal static readonly int SSRResolveTemp = Shader.PropertyToID("_SSRResolveTemp");
4343
internal static readonly int Noise = Shader.PropertyToID("_Noise");
4444
internal static readonly int Test = Shader.PropertyToID("_Test");
@@ -49,7 +49,8 @@ static class ShaderIDs
4949
internal static readonly int InverseProjectionMatrix = Shader.PropertyToID("_InverseProjectionMatrix");
5050
internal static readonly int ScreenSpaceProjectionMatrix = Shader.PropertyToID("_ScreenSpaceProjectionMatrix");
5151
internal static readonly int Params2 = Shader.PropertyToID("_Params2");
52-
52+
internal static readonly int Params3 = Shader.PropertyToID("_Params3");
53+
5354
internal static readonly int FogColor = Shader.PropertyToID("_FogColor");
5455
internal static readonly int FogParams = Shader.PropertyToID("_FogParams");
5556

PostProcessing/Shaders/Builtins/ScreenSpaceReflections.hlsl

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99
#define SSR_MINIMUM_ATTENUATION 0.275
1010
#define SSR_ATTENUATION_SCALE (1.0 - SSR_MINIMUM_ATTENUATION)
1111

12-
#define SSR_VIGNETTE_INTENSITY 0.7
13-
#define SSR_VIGNETTE_SMOOTHNESS 0.25
12+
#define SSR_VIGNETTE_INTENSITY _Params3.x
13+
#define SSR_VIGNETTE_SMOOTHNESS 5.
1414

1515
#define SSR_COLOR_NEIGHBORHOOD_SAMPLE_SPREAD 1.0
1616

@@ -75,6 +75,7 @@ float4x4 _ScreenSpaceProjectionMatrix;
7575

7676
float4 _Params; // x: attenuation, y: distance fade, z: maximum march distance, w: blur pyramid lod count
7777
float4 _Params2; // x: aspect ratio, y: noise tiling, z: thickness, w: maximum iteration count
78+
float4 _Params3; // x: vignette intensity, y: vignette smoothness
7879
#define _Attenuation _Params.x
7980
#define _DistanceFade _Params.y
8081
#define _MaximumMarchDistance _Params.z

0 commit comments

Comments
 (0)