I'm a software engineer and although I currently don't work on anything related to computer graphics, I understand how downscaling works, what I don't understand is why most modern games default to over 100% on my computer (GTX 1080, 1080p@144Hz monitor). For instance, Overwatch defaults to 140% render scale, which translates into a huge performance hit (stable 144 vs 60~80 fps). Why is the game doing this? I understand that downscaling makes the quality of the image a bit better, but this doesn't justify that performance hit. I read in some places that downscaling also helps to reduce some graphics artifacts, can someone please elaborate on this? I would like to know what are the benefits of downscaling and why modern games are defaulting to settings above 100%.
-
$\begingroup$ What do you mean by "downscaling", in this regard? $\endgroup$– Nicol BolasCommented Nov 10, 2016 at 20:12
-
1$\begingroup$ Maybe I used the wrong term, but I meant the following: my monitor has a native 1920x1080 resolution, the game is offering me (by default) to render 40% more pixels than my monitor can actually display, so in the end, the image will be "downscaled" to the actual size my monitor is actually able to display. $\endgroup$– UnsafePointerCommented Nov 10, 2016 at 20:15
1 Answer
What you are describing is supersampling, a technique for combating aliasing (a.k.a. jaggies), which is a term from signal theory that also applies to graphics. It's a spatial domain approach. Basically it means that the sampling resolution (render target pixels in this case) makes signals with different frequencies be reconstructed as the same frequency. Or, in other words, the scene is sampled too infrequently for sub-pixel detail to be properly represented.
It is especially prevalent in modern games since the recent advances in GPU computing power have made that quality/performance tradeoff (that you deem unjustified, but unless we're talking VR, everything above 60 FPS is just buttery-smooth and undistinguishable) even possible, and because the (fairly) recently introduced physically-based shading models are much more susceptible to aliasing from sources other than just undersampled geometry: a group of artifacts collectively called shading aliasing, with specular aliasing (a.k.a. fireflies) being especially visible. Epic Games' Brian Karis explains some of that in the opening of his presentation on temporal AA in UE4 (temporal AA is just another approach to anti-aliasing, one that distributes samples in time instead of space).
To sum up: it's the brute force approach to fixing aliasing. An anti-aliasing technique that simply captures more samples of the scene, and thus captures more sub-pixel detail that would otherwise be lost.
It is also worth mentioning that while it appears superficially similar to Multi-Sampled Anti-Aliasing, it differs in the sampling pattern (SSAA simply increases the pixel grid density, whereas MSAA has a sort of sheared grid pattern) and the sampled signal resolution (SSAA is a full colour capture, MSAA cheats slightly by sampling triangle coverage more finely than colour).
-
$\begingroup$ I really dont think this is what he's talking about. What he is saying is that the default resolution of the game is higher than his monitor's actual resolution. $\endgroup$ Commented Nov 11, 2016 at 6:07
-
1$\begingroup$ Yes, and that is precisely how supersampling is implemented. You render to a higher resolution render target and then downscale to the screen size, and capture sub-pixel detail in the process. $\endgroup$ Commented Nov 11, 2016 at 11:42
-
$\begingroup$ Can you provide evidence that any game actually consciously makes the choice to have a larger than native resolution as a way of doing anti aliasing? The heuristics for auto detection are already complex enough without this added complexity, I'd be really surprised. $\endgroup$ Commented Nov 11, 2016 at 13:23
-
1$\begingroup$ Here you go, Battlefield 1: reddit.com/r/battlefield_one/comments/50b4m1/… As for the "heuristics", you'd be suprised. There are practically none. No game I've ever shipped had anything more complex than a simplistic, synthetic benchmark on the first run, and/or custom configurations per device IDs determined via trial-and-error QA testing on a wide range of hardware. $\endgroup$ Commented Nov 11, 2016 at 14:56
-
2$\begingroup$ that trial and error is what i was talking about, but i guess this doesn't add complexity in that case since it doesnt really add extra testing. Interesting stuff. I was definitely wrong about what I said! $\endgroup$ Commented Nov 11, 2016 at 15:13