Is it possible to apply pixel-art filters only to specific "layers"?

1 year 4 months ago #1 by ArkBlitz
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?

Please Log in or Create an account to join the conversation.