Skip to content(if available)orjump to list(if available)

Sharp Bilinear Filters: Big Clean Pixels for Pixel Art

jan_Inkepa

Huh (having scanned but not read in detail the post), interesting approach. I'm not that well-versed in this area (as a game developer, I tend to jump straight to nearest-neighbour), but hadn't come across this before. I love the pathological example of a checkerboard pattern - very pleasing worst-case scenario, where I suspect it would just be a grey blur. However, the developer doesn't show us the equivalent for the suggested filter - systemically showing side-by-side comparisons of different filters would be useful. I suspect the resulting artefacts would be randomly blurry lines, which could also stand out. But nice to see people thinking about these things...

Here's a related disucssion on what 'pixelated' should mean from the css working group

https://github.com/w3c/csswg-drafts/issues/5837

(every so often browsers break/rename how nearest-neighbouring filtering works. I hope at some point it stabilizes lol - I note in the discussion linked nobody else cares about backwards compatibility ...).

scheeseman486

For as long as emulators supported shaders I've gotten into the habit of configuring them to scale output 4x nearest neighbor and then downscaling that to the display resolution using bilinear, which has roughly the same results; it gets rid of shimmering without blurring everything to a smudge. On any 1080p display with lower resolution content it looks great, but the method starts to fall apart once you try to scale anything higher than 480p.

With a 4K display the pixel density is high enough that virtually everything looks good scaled this way, though once you go higher than SD content you're usually dealing with 720p and 1080p, both of which 2160p divides into evenly anyway.

It's surprising how often I see bad pixel art scaling given how easy it is to fix.

d_tr

Sounds like exactly the same thing since bilinear filtering in the upscaled image only has an effect near the edges of the fat pixels.

smallerize

Ok but what does that image at the top look like with this new filter applied?