Fix TAA in editor's debug view modes

This commit is contained in:
Wojtek Figat
2024-05-20 19:03:28 +02:00
parent a69c8ce6a2
commit c486577b07

View File

@@ -334,6 +334,32 @@ void RenderInner(SceneRenderTask* task, RenderContext& renderContext, RenderCont
}
setup.UseTemporalAAJitter = aaMode == AntialiasingMode::TemporalAntialiasing;
// Disable TAA jitter in debug modes
switch (renderContext.View.Mode)
{
case ViewMode::Unlit:
case ViewMode::Diffuse:
case ViewMode::Normals:
case ViewMode::Depth:
case ViewMode::Emissive:
case ViewMode::AmbientOcclusion:
case ViewMode::Metalness:
case ViewMode::Roughness:
case ViewMode::Specular:
case ViewMode::SpecularColor:
case ViewMode::SubsurfaceColor:
case ViewMode::ShadingModel:
case ViewMode::Reflections:
case ViewMode::GlobalSDF:
case ViewMode::GlobalSurfaceAtlas:
case ViewMode::LightmapUVsDensity:
case ViewMode::MaterialComplexity:
case ViewMode::Wireframe:
case ViewMode::NoPostFx:
setup.UseTemporalAAJitter = false;
break;
}
// Customize setup (by postfx or custom gameplay effects)
renderContext.Task->SetupRender(renderContext);
for (PostProcessEffect* e : renderContext.List->PostFx)
@@ -500,8 +526,13 @@ void RenderInner(SceneRenderTask* task, RenderContext& renderContext, RenderCont
EyeAdaptationPass::Instance()->Render(renderContext, lightBuffer);
PostProcessingPass::Instance()->Render(renderContext, lightBuffer, tempBuffer, colorGradingLUT);
RenderTargetPool::Release(colorGradingLUT);
RenderTargetPool::Release(lightBuffer);
context->ResetRenderTarget();
if (aaMode == AntialiasingMode::TemporalAntialiasing)
{
TAA::Instance()->Render(renderContext, tempBuffer, lightBuffer->View());
Swap(lightBuffer, tempBuffer);
}
RenderTargetPool::Release(lightBuffer);
context->SetRenderTarget(task->GetOutputView());
context->SetViewportAndScissors(task->GetOutputViewport());
context->Draw(tempBuffer);