Hi,
I see resolution scale for example in Quake Champions but also Unreal Engine has, and in forum posts it's sometimes said too.
Is it a real must have because resolution scale means very bad visual quality since it's a render target upscaled to the screen resolution at the end if not 100%.
Thanks
Resolution scale, good thing ?
Well, from an end user perspective it's either never used, or it's a lifesaver. For example without a resolution scaling option, I would've had a hard time playing Mass Effect: Andromeda, to reach a framerate between 30-60FPS I needed to put everything to low and set the scale to x0.8. (My i7 920 + GTX670 rig isn't the beast it used to be :) )
If you think about it, back in the old days we set lower resolutions to get some extra needed perf, resolution scaling achieves about the same effect, but provides more fine control over the rendering resolution, and does this while still outputing a backbuffer in the native resolution of the screen. (Not to mention that no matter what the set scale value is, you can still render your ui at the native resolution, so it doesn't become a blurry unreadable mess.)
These settings can also be (ab)used as an uber AA option - render at double resolution amd downscale :)
Many console games actually automatically change resolution scaling setting during gameplay in order to keep the framerate acceptable :wink:
Many console games actually automatically change resolution scaling setting during gameplay in order to keep the framerate acceptable
They create the render target on the fly if not one is available for the asked size using a render target pool ?
Is it ok to downscale/upscale using the hardware filtering ?
Many console games actually automatically change resolution scaling setting during gameplay in order to keep the framerate acceptableThey create the render target on the fly if not one is available for the asked size using a render target pool ?
Is it ok to downscale/upscale using the hardware filtering ?
With dynamic scaling you have a minimum and a maximum resolution multiplier, so it's easier to just create a rendertarget that fits the size of the maximum scale, and then render with the viewport set to the actual scale used at the moment. I used this (https://software.intel.com/en-us/articles/dynamic-resolution-rendering-article) article as a reference to implement this kind of stuff in my framework, it discusses filtering options too.