I've been trying to find a way to apply filters to certain 2D games that integrate both low-res and high-res/3D assets, in such a way that only the low-res assets are affected. In particular:
- Games like Celeste or Virgo vs. The Zodiac, that mix low-res sprites on a layer with high-res portraits and UI on a higher layer.
- Games like Wargroove or Rivals of Aether, that while being fully low-res, include high-res videos on their intro.
- Emulated games for consoles like the PSP or the Nintendo 64, that often include low-res sprites on 3D environments.
As of now, Reshade applies its filters to either the whole image, to a fixed set of coordinates of the image, or not at all - which makes the high-res parts of the image end up needlessly blurry as the filter is indiscriminately applied to them. I've been reading that there's a LibRetro filter available for the RetroArch emulator, named
"Super xBR 3D"
, that does exactly that - detecting which parts of the image are rendered at native resolution and which ones are upscaled, then filtering only the upscaled parts. However, I don't have enough knowledge of CG code to port it by myself, especially since this is a multi-pass filter (
thread here
) so I've been searching for an alternative to perform that multi-pass method. Any suggestions?