TSR feedback thread

Having terrible problems with fast moving niagara projectiles smearing. They are high emissive and they leave awful streaks behind them. Happens with fast moving static meshes attached to the projectile too but nowhere near as bad.

Pretty sure its from a mix of upscaling and tsr.
Any tips on how to solve this? Im using 5.2.

My temporary fix is to set them to render after tonemapper and add in a depth fade to the opacity but this obviously isnt ideal.

But this 2nd video looks nothing like the first one consider it lost almost all light contributing to the scene somewhere ~50 meters? And also lose the light source. Like yes the flickering will make the overall result looks bad but I think it’s a ā€œbetterā€ output lighting wise compare to 2nd video. Once people fix that flicker it’s superior result.

Does this work on mobile? If yes. Which is better fsr 1 mobile plugin or TSR for mobile?

If it does not work on mobile, Do you plan to release it in the future for mobile? Or maybe release fsr 2 for mobile? or maybe an update better version of fsr1 for mobile?

hey guys, I got this problem with anti aliasing and Epic’s Water plugin: when camera is underwater there’s post processing happening that for some reason introduces tiny, wild flicker around every mesh
image
the more bright background the more it stands out. Mind that it’s not specific to TSR, every available AA method makes it flicker, except for disabling AA altogether…

Huh ok.

I did more testing on this. So you take a static mesh with a high emissive and move it around the viewport, the motion velocity all works fine and there is no smearing.

You take the same mesh and put it in a blueprint as a static mesh component and move the blueprint around and the mesh does not pass its velocity and you get horrible smearing. If you move the component itself the velocity is properly set.

So static mesh components are not inheriting the velocity of the parent blueprint.

3 Likes

I am getting this really weird swimming in pixels where when I examine in a still frame, pixels seem to be swimming diagonally back and forth. It causes huge issues because of our baked motion vectors, so upon sampling the edge, it goes back and forth between the baked motion vector and and then 0 from the background. It produces this high frequency smear and swimming effect. It does not happen on any other AA method. This is on cinematic quality.

Geometry caches are exhibiting severe ghosting with TSR.

1 Like

@Guillaume.Abadie

I once pointed out problems in game trailers you ended up dismissing as youtube compression.

This trailer is perfect example showing in inadequacy of TSR’s design. These issues are present in many games, but this is undeniable Temporal faulting on video:
https://www.youtube.com/watch?v=b6hAzFqWSSQ&t=140s&ab_channel=SILENTHILL(Official)

The res is so high they introduce major performance issues in a game where panning is the main interaction and it destroys modern monitors with persistence blur.

1:18: Leaves, so bad.
3:25: Long ghosting on clubbing object.
4:19 (hair)This is why a frame limit is so serious.
5:15 that girls hair looks like a slimy mess.

Now, the motion smear from fast motion isn’t going to be exposed by the main/slow gameplay. A frame limit and more effective sampling in a shorter sequence would prevent most of these issues.

I’ve already given detailed responses of how TSR could be improved here, here. So far the best thing about TSR is the reprojection and ability to sort spatial upscaled N- frames.

I’m not sure how many spatial upscalers you’ve tested. But FSR1 performance is more accurate in terms of texture detail when compared to DLSS performance with only 2 frames of resolve.

Hi!
I followed the instructions you posted and got the result of ProfileGPU like your example. But one thing I am confused about is how to upscale the captured image with TSR; TemporalSuperResolution() 1024x1024 → 1024x1024 seems no difference between the render resolution and the display resolution(render target resolution as well).
Maybe something like ScreenPercentage should be set with SceneCapture? I tried to change the ScreenPercentage at Engine Scalability Settings and the upscaling info about the client viewport changed as I expected, but the info about the SceneCapture didn’t change(render resolution and display resolution are always the same). I’m not quite sure if ScreenPercentage is valid about SceneCapture since I read some source code(UE 5.3) about SceneCaptureRendering and found the comment, ā€œScreen percentage is still not supported in scene captureā€.
Is there something I missed? How to upscale SceneCapture image with TSR from low render resolution to high display resolution?

Hi, not sure if thread is still active or not, but after spending weeks researching about all this stuff there’s one thing I can’t find an answer for. And that’s why are we still seeing blurring artifacts (regardless of whether we can minimise them using various techniques) at 100% scaling? Is it possible to have a fallback pipeline without TSR (or TAA) for the cases that our users are playing that game from between 1080p and 2k resolution and want the game to look like previous generation games but with lumen enabled? Can you provide links to show which features of unreal require the temporal algorithms to help me understand what the reasons for the temporal artifacts are?

Also to offer an answer to your question, we’re expecting TSR to work with flow maps, but there’s an obvious unfixable artifact present with single layer water. You can see it behind this (attached) thin support pole around screen center - there shouldn’t even be a shadow present but instead a dark and jagged shadow is present. The water material isn’t set to cast any shadows and is more or less the default material present in ue5-main. The scene is using lumen with volumetric fog enabled.

Have you seen any improvements on this? I want to know if this thread is still alive and Epic or @Guillaume.Abadie keep an eye on it. I want to report something too.

Thanks

I think my previous example was not a TSR issue but a long-standing limitation of the shallow water shader. However I think this issue might be, I don’t know how to fix it or what parameters can improve it. I’ve turned temporal upsampling turned off using a console command (made no difference) and I’m on unreal 5.5 with 100% TSR scaling but I’m seeing a great lot of artifacts worse than the old MPEG. I have a spade which the player thrusts reasonably quickly as they step forward, and all I see is a blurry mess even though it’s above 60fps. I don’t even have it upscaled to 4K (it’s closer to HD) so I don’t understand why I’m seeing these artifacts. If it’s an inherent part of unreal 5 now regardless of whether we want to support 4K in our game or not, then I’m at a loss - it’s unacceptable, because we can’t roll back to unreal 4.

I’ve also enquired with NVIDIA about the DLSS availability for 5.5 and it’s only available for 5.3. I’ve failed in downgrading our main code back to 5.3 and I have too many hesitations anyway because of what you have said about the state of TSR in 5.3 and even 5.4. @Guillaume.Abadie Can you please provide any assistance in how to move forward in 5.5 or ue5-main with this kind of artifacting? (I have tried building the project in ue5-main and it’s the same)


When keeping the camera fairly still:


When moving the mouse rapidly in circles:


Spade with aggressive animation:


Flags I have tried:
r.Translucency.AutoBeforeDOF 0.5 by default, 0.0 looks the same. 1.0 looks like the snow is on top of the artifact areas, which by the principle of contrast appears slightly more visually pleasing; however it doesn’t address the smearing itself.

r.EyeAdaptation.PreExposureOverride around the 20s in this scene. I tried setting this from 1-100 manually and it had no effect.

EDIT:
After a lot of trial and error I have narrowed the issue down to enabling volumetric fog. Why wouldn’t TSR work with my volumetric fog? See below for volumetric turned off and the spade in rapid motion, which is exactly what I expect (with motion blur enabled):