@@ -69,7 +69,7 @@ class QualityPreset
69
69
public ScreenSpaceReflectionResolution downsampling ;
70
70
}
71
71
72
- QualityPreset [ ] m_Presets =
72
+ readonly QualityPreset [ ] m_Presets =
73
73
{
74
74
new QualityPreset { maximumIterationCount = 10 , thickness = 32 , downsampling = ScreenSpaceReflectionResolution . Downsampled } , // Lower
75
75
new QualityPreset { maximumIterationCount = 16 , thickness = 32 , downsampling = ScreenSpaceReflectionResolution . Downsampled } , // Low
@@ -143,13 +143,6 @@ public override void Render(PostProcessRenderContext context)
143
143
lodCount = Mathf . Min ( lodCount , kMaxLods ) ;
144
144
145
145
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
- }
153
146
154
147
var noiseTex = context . resources . blueNoise256 [ 0 ] ;
155
148
var sheet = context . propertySheets . Get ( context . resources . shaders . screenSpaceReflections ) ;
@@ -174,16 +167,32 @@ public override void Render(PostProcessRenderContext context)
174
167
cmd . GetTemporaryRT ( ShaderIDs . Test , size , size , 0 , FilterMode . Point , context . sourceFormat ) ;
175
168
cmd . BlitFullscreenTriangle ( context . source , ShaderIDs . Test , sheet , ( int ) Pass . Test ) ;
176
169
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 ) ;
179
177
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
+ }
182
183
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 ) ;
185
191
186
- cmd . CopyTexture ( m_Resolve , 0 , 0 , m_History , 0 , 0 ) ;
192
+ cmd . ReleaseTemporaryRT ( ShaderIDs . SSRResolveTemp ) ;
193
+ }
194
+
195
+ cmd . ReleaseTemporaryRT ( ShaderIDs . Test ) ;
187
196
188
197
// Pre-cache mipmaps ids
189
198
if ( m_MipIDs == null || m_MipIDs . Length == 0 )
0 commit comments