I have simple planes(yellow circles) facing camera connected by blooming cylinder spline meshes(blue lines). Planes have a surface unlit translucent material with a bit of emissive color. The planes’ bloom effect is created by material with simple translucency lerping from 1 to 0. Spline blue lines have opaque blooming material.
The issue arises when moving the camera around it with TSR on. It causing a strange ghosting effect on my planes’ bloom and on all numbers which are displayed on the plane. This ghosting effect persists when setting the translucency to 1. When switching the material to masked/opaque or using FXAA, the ghosting disappears.
First GIF - TSR, second - FXAA.
Also on the first GIF(TSR) you can clearly see black central numbers(23) bending at the eng of GIF animation when I move camera towards and backwards the plane.
If nothing is moving TSR gives normal result.
FXAA looks normal but there is too much stair-step effects on blue spline meshes.
Also I have camera FOV 5 degree, but switching it to normal 90 cause no effect on ghosting effect.
Any thoughts how to fix TSR or make FXAA less stair-steps effect?
Hi!
Its just on how TSR works — it simply takes a some previous frames and blends them together. That’s why you get ghosting, but also why it helps with pixelated edges.
The best way to get rid of it - is by increasing your screen resolution using r.ScreenPercentage, though it obviously comes at a performance cost. From what I remember, I tried pretty much all the TSR-related command-line options, but nothing worked as well as simply bumping up the resolution.
In my case, I got a veeeery small improvement by setting r.TSR.ShadingRejection.ExposureOffset 0, and enabling r.VSync 1 (though VSync might’ve been related to a different issue — I don’t remember exactly). You can also try dynamically tweaking the TSR sample count (the number of prev. frames it blends together), especially if the scene is mostly static and something appears/disappears over just a few frames. This way, TSR won’t blend the frames before and after the action, which helps reduce ghosting or artifacts.
You can also try tweaking other settings like sg.AntiAliasingQuality or other TSR options and find best solution in your case.
I don’t quite remember how TSR interacts with translucency, but in my case, I made the main circle opaque and added the “bloom” effect using a translucent material to make any issues less noticeable. I think there were some improvements related to translucency by tweaking settings in the main material node (below the material viewport) — specifically in the translucency pass options.