@@ -334,6 +334,32 @@ void RenderInner(SceneRenderTask* task, RenderContext& renderContext, RenderCont
334334 }
335335 setup.UseTemporalAAJitter = aaMode == AntialiasingMode::TemporalAntialiasing;
336336
337+ // Disable TAA jitter in debug modes
338+ switch (renderContext.View .Mode )
339+ {
340+ case ViewMode::Unlit:
341+ case ViewMode::Diffuse:
342+ case ViewMode::Normals:
343+ case ViewMode::Depth:
344+ case ViewMode::Emissive:
345+ case ViewMode::AmbientOcclusion:
346+ case ViewMode::Metalness:
347+ case ViewMode::Roughness:
348+ case ViewMode::Specular:
349+ case ViewMode::SpecularColor:
350+ case ViewMode::SubsurfaceColor:
351+ case ViewMode::ShadingModel:
352+ case ViewMode::Reflections:
353+ case ViewMode::GlobalSDF:
354+ case ViewMode::GlobalSurfaceAtlas:
355+ case ViewMode::LightmapUVsDensity:
356+ case ViewMode::MaterialComplexity:
357+ case ViewMode::Wireframe:
358+ case ViewMode::NoPostFx:
359+ setup.UseTemporalAAJitter = false ;
360+ break ;
361+ }
362+
337363 // Customize setup (by postfx or custom gameplay effects)
338364 renderContext.Task ->SetupRender (renderContext);
339365 for (PostProcessEffect* e : renderContext.List ->PostFx )
@@ -500,8 +526,13 @@ void RenderInner(SceneRenderTask* task, RenderContext& renderContext, RenderCont
500526 EyeAdaptationPass::Instance ()->Render (renderContext, lightBuffer);
501527 PostProcessingPass::Instance ()->Render (renderContext, lightBuffer, tempBuffer, colorGradingLUT);
502528 RenderTargetPool::Release (colorGradingLUT);
503- RenderTargetPool::Release (lightBuffer);
504529 context->ResetRenderTarget ();
530+ if (aaMode == AntialiasingMode::TemporalAntialiasing)
531+ {
532+ TAA::Instance ()->Render (renderContext, tempBuffer, lightBuffer->View ());
533+ Swap (lightBuffer, tempBuffer);
534+ }
535+ RenderTargetPool::Release (lightBuffer);
505536 context->SetRenderTarget (task->GetOutputView ());
506537 context->SetViewportAndScissors (task->GetOutputViewport ());
507538 context->Draw (tempBuffer);
0 commit comments