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

Commit 2b48a5b

Browse files
committed
Disabled temporal reprojection for SSR when rendering in the scene view
1 parent 88a5c33 commit 2b48a5b

File tree

1 file changed

+24
-15
lines changed

1 file changed

+24
-15
lines changed

PostProcessing/Runtime/Effects/ScreenSpaceReflections.cs

Lines changed: 24 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ class QualityPreset
6969
public ScreenSpaceReflectionResolution downsampling;
7070
}
7171

72-
QualityPreset[] m_Presets =
72+
readonly QualityPreset[] m_Presets =
7373
{
7474
new QualityPreset { maximumIterationCount = 10, thickness = 32, downsampling = ScreenSpaceReflectionResolution.Downsampled }, // Lower
7575
new QualityPreset { maximumIterationCount = 16, thickness = 32, downsampling = ScreenSpaceReflectionResolution.Downsampled }, // Low
@@ -143,13 +143,6 @@ public override void Render(PostProcessRenderContext context)
143143
lodCount = Mathf.Min(lodCount, kMaxLods);
144144

145145
CheckRT(ref m_Resolve, size, size, context.sourceFormat, FilterMode.Trilinear, true);
146-
CheckRT(ref m_History, size, size, context.sourceFormat, FilterMode.Bilinear, false);
147-
148-
if (m_ResetHistory)
149-
{
150-
context.command.BlitFullscreenTriangle(context.source, m_History);
151-
m_ResetHistory = false;
152-
}
153146

154147
var noiseTex = context.resources.blueNoise256[0];
155148
var sheet = context.propertySheets.Get(context.resources.shaders.screenSpaceReflections);
@@ -174,16 +167,32 @@ public override void Render(PostProcessRenderContext context)
174167
cmd.GetTemporaryRT(ShaderIDs.Test, size, size, 0, FilterMode.Point, context.sourceFormat);
175168
cmd.BlitFullscreenTriangle(context.source, ShaderIDs.Test, sheet, (int)Pass.Test);
176169

177-
cmd.GetTemporaryRT(ShaderIDs.SSRResolveTemp, size, size, 0, FilterMode.Bilinear, context.sourceFormat);
178-
cmd.BlitFullscreenTriangle(context.source, ShaderIDs.SSRResolveTemp, sheet, (int)Pass.Resolve);
170+
if (context.isSceneView)
171+
{
172+
cmd.BlitFullscreenTriangle(context.source, m_Resolve, sheet, (int)Pass.Resolve);
173+
}
174+
else
175+
{
176+
CheckRT(ref m_History, size, size, context.sourceFormat, FilterMode.Bilinear, false);
179177

180-
sheet.properties.SetTexture(ShaderIDs.History, m_History);
181-
cmd.BlitFullscreenTriangle(ShaderIDs.SSRResolveTemp, m_Resolve, sheet, (int)Pass.Reproject);
178+
if (m_ResetHistory)
179+
{
180+
context.command.BlitFullscreenTriangle(context.source, m_History);
181+
m_ResetHistory = false;
182+
}
182183

183-
cmd.ReleaseTemporaryRT(ShaderIDs.Test);
184-
cmd.ReleaseTemporaryRT(ShaderIDs.SSRResolveTemp);
184+
cmd.GetTemporaryRT(ShaderIDs.SSRResolveTemp, size, size, 0, FilterMode.Bilinear, context.sourceFormat);
185+
cmd.BlitFullscreenTriangle(context.source, ShaderIDs.SSRResolveTemp, sheet, (int)Pass.Resolve);
186+
187+
sheet.properties.SetTexture(ShaderIDs.History, m_History);
188+
cmd.BlitFullscreenTriangle(ShaderIDs.SSRResolveTemp, m_Resolve, sheet, (int)Pass.Reproject);
189+
190+
cmd.CopyTexture(m_Resolve, 0, 0, m_History, 0, 0);
185191

186-
cmd.CopyTexture(m_Resolve, 0, 0, m_History, 0, 0);
192+
cmd.ReleaseTemporaryRT(ShaderIDs.SSRResolveTemp);
193+
}
194+
195+
cmd.ReleaseTemporaryRT(ShaderIDs.Test);
187196

188197
// Pre-cache mipmaps ids
189198
if (m_MipIDs == null || m_MipIDs.Length == 0)

0 commit comments

Comments
 (0)