Dense Nanite meshes have pixel height holes in them that are visible with TSR, but partly mitigated by using TAA.
This issues is less noticeable with TAA becauses it’s a bit like a details that TAA eats away.
Lumen’s screen traces pick up translucent emissive surfaces when using TSR , but not when using TAA.
Thanks for bringing this to my attention, I was not made aware of this issue before. I’ve hunt down the bug to this line of code: https://github.com/EpicGames/UnrealEngine/blob/f960f40f79fec98bd687c1b3b2ec76222be85c70/Engine/Source/Runtime/Renderer/Private/PostProcess/TemporalSuperResolution.cpp#L2201 where TSR extracts its output into View.ViewState->PrevFrameViewInfo.CustomSSRInput
that then gets used next frame by lumen screen space tracing instead of View.ViewState->PrevFrameViewInfo.ScreenSpaceRayTracingInput
that notably avoids highlight leaking between in the SSGI trace. The correct thing to do to still have legacy SSR working correctly with TSR is to instead output in View.ViewState->PrevFrameViewInfo.TemporalAAHistory
with these lines:
// Extract the output for next frame SSR so that separate translucency shows up in SSR.
{
// Output in TemporalAAHistory and not CustomSSR so Lumen can pick up ScreenSpaceRayTracingInput in priority to ensure consistent behavior between TAA and TSR.
GraphBuilder.QueueTextureExtraction(
SceneColorOutputTexture, &View.ViewState->PrevFrameViewInfo.TemporalAAHistory.RT[0]);
View.ViewState->PrevFrameViewInfo.TemporalAAHistory.ViewportRect = OutputRect;
View.ViewState->PrevFrameViewInfo.TemporalAAHistory.ReferenceBufferSize = OutputExtent;
}
I have the fix pending for review for 5.3.
It looks perfectly fine in the viewport, which makes me think it’s an issue with SceneCaptures.
Smells like motion vectors yet again sadly. We found not that long ago that having multiple FSceneViewFamily per frames could lead to major motion vector bug on skeletal meshes. This fix could possibly fix what you are running into if I understand correctly: https://github.com/EpicGames/UnrealEngine/commit/e37bae26cec8a5287aa508941ec06a92b689f06e
I’m not entirely sure how best to debug this. Do you think updating to UE5.2 and using these flags might help? I’m not using any WPO materials to my knowledge, and velocity seems to be writing properly.
DumpGPU ( GPUDump Viewer Tool in Unreal Engine | Unreal Engine 5.0 Documentation ) or other third party GPU frame debugging tools like pix ( Download - PIX on Windows ) or renderdoc ( https://renderdoc.org/ ) are extensive tools that allows to have better understanding in what is happening in internals of the renderer. But in 5.1 for specifically the description of your bug, you might also be able to get the VisualizeMotionBlur show flag to should show very incosnsitent motions between your scene capture and view.