Loading video...

Video Failed to Load

Go Home

alright here's another fun project i've been working on: clean4x, a pixel art upscaling algorithm for rotation. this is an idea i've had for many years, i wrote more about it here:

228,458 views • 3 years ago •via X (Twitter)

11 Comments

torcado's profile picture
torcado3 years ago

here's some examples of what the upscaling results look like :) and here's the shader code (as a godot shader, but should be easily convertible), feel free to play around with it!

Rainmaker's profile picture
Rainmaker2 years ago

Can Machine Learning beat the market? Check out this post on my free Substack where I share code and commentary for an XGBoost model and a Random Forest model that both deliver powerful performances.

Romain Macré's profile picture
Romain Macré3 years ago

Is the upscaling used purely as an intermediate step, with the final purpose being a cleaner rotation with rasterisation?

torcado's profile picture
torcado3 years ago

yep pretty much :) that's exactly the case for the shader (since it doesn't change the image size), but the algorithm can just as well be used purely for upscaling sake, if you like how the result looks.

【まれん】BILLPC2684 (Florana/Kommi)'s profile picture
【まれん】BILLPC2684 (Florana/Kommi)3 years ago

interesting so your still saying on the pixel grid most rotation system, just rotates the whole thing as a image and ignores pixel lineament what it looks like it's doing, is fixing some dithering from rotation, correct?

torcado's profile picture
torcado3 years ago

in the example the source image is scaled up 4x then rotated. scaling with nearest neighbor then rotating (or rotating at base res) causes artifacting, usually from staggered edges. the upscaler fills in extra detail on the edges so the final pixels read desired colors more often

Luca's profile picture
Luca3 years ago

This is so freaking awesome! And I noticed your shader code is in Godot's shader language. Even better! I did something like this too, but I tried to use a RotSprite algorithm: It'd be cool to see how they compare!

torcado's profile picture
torcado3 years ago

ooh very cool!! that would be neat to compare, ill have to take a look :)

♥️'s profile picture
♥️3 years ago

game changer

torcado's profile picture
torcado3 years ago

@alexpixelate 💕💕

Lancelot's Hangover 🍻 LIVE on STEAM's profile picture
Lancelot's Hangover 🍻 LIVE on STEAM3 years ago

🔼🔼🔼 @davidcapello - this feature would be very useful in @aseprite (and it seems the code is public on GitHub)

Related Videos