Unreal Engine 5.0 Preview

It controls the screen percentage of the temporal history of TSR based on the TSR’s output resolution. Cinematic anti-aliasing scalability setting sets this 200 (history res = 2 the display res) versus 100 (history = display res) for the rest of the the anti-aliasing scalabilities.

The advantage is effectively storing the details accumulated over frame at thiner granularity than the output resolution, where 200 is particularily interesting because it means the footprint of bilinear texture samples used in the kernel for the reprojection of the history is still smaller than the output resolution. This then allows to maintain very very competitive output texture sharpness in motion.

Think of it like music file format encoding your music’s melody at a higher sampling rate than what you ears can actually ear.

Of course this doesn’t come for free because TSR’s UpdateHistory pass is processing more pixels for the history = more expensive on the GPU. So I wasn’t quite ready making this part of the Epic anti-aliasing scalability settings. This cost can be measured with the stat gpu that have it’s own dedicated GPU timing bucket dedicated for TSR.

Note that the GPU has a maximum texture size of 16k x 16k. So you can render with r.TemporalAA.HistoryScreenPercentage=200 up to 8k x 8k resolution before it gets automatically disabled to avoid error in the RHI when trying to allocate TSR’s history.

We had first introduced this trick in 4.22 in TAA with r.TemporalAA.HistoryScreenPercentage that was a nice quality improvement for our digital human demo that could not stop breathing causing slight history reprojection bluring the skin details overtime. This however never became a real boy in UE4, because it was essentially using the same TAAU shader we were not quite happy with its upscaling quality anyway and was back in UE4 never enabled by default.

3 Likes