@@ -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