Implement Catmull-Rom 4-Tap as a Scaling 3D Option #6737
Replies: 4 comments
-
Here is a 1080P shot with 70% render scale, which is think looks pretty close to native (aside from the aliasing). |
Beta Was this translation helpful? Give feedback.
-
This is 720P upscaled to 1440P but with an FXAA pass on the original buffer (before scaling). |
Beta Was this translation helpful? Give feedback.
-
If performance is a priority, I would just focus on reimplementing CAS and using that with bilinear scaling. CAS is very cheap and easily runs in 0.1 ms of GPU time or less. FSR Lite is also an option (more expensive than CAS, but less than full-blown FSR 1.0). |
Beta Was this translation helpful? Give feedback.
-
I would have to do some performance tests as I'm just ballparking it here. However, I do think FXAA + Catmull-Rom looks significantly better than CAS. CAS suffers from a lot of dark edges and sometimes can look like a sobel filter, whereas Catmull-Rom looks closer to native (as you can see in the last screenshot I posted). That said, I can take a look at CAS and FSR Lite and see if they are better options. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
I have found an inexpensive way to upscale an image that is slightly better than linear. It is not on the level of FSR, however it can help improve the sharpness and image quality on low-end devices, specifically mobile and web. The technique and code is shown on this page, with a shadertoy demo so you can see how it works.
https://www.decarpentier.nl/2d-catmull-rom-in-4-samples
https://www.shadertoy.com/view/4tyGDD
It does require a shader, so there is some cost above built-in linear, but should be much less than FSR, particularly on the low-end.
I have implemented this in my own OpenGL demo to demonstrate the quality. This is 540P upscaled to 1080P. It still looks low-res, of course, but you can notice on the leather pattern and on the ribbed dial that it retains detail better. The text is also slightly more clear and overall does not look as blurry and muddy. Note, this is on the lowest setting that is viable (50%) on something like 70% it looks close to native with just some additional aliasing on edges. Particularly for smaller screens on mobile, the loss of quality is not that bad but the performance boost is significant.
Beta Was this translation helpful? Give feedback.
All reactions