Retro AA - antialiasing for pixel art and voxel games

RetroAA is now in the store: Unity Asset Store - The Best Assets for Game Making

We’re working on a new asset to help you achieve the perfect smooth big-pixel look for your retro styled game! Smoothly rotate, scale, and position your artwork without unsightly jaggies, moire, or swimming pixels. RetroAA keeps your pixels looking their best.

RetroAA also works well with voxel games and is 3D ready! With anisotropic filtering enabled, your textures will keep their sharp pixel look even at very shallow viewing angles.

Here’s some example screenshots we’ve got:

And here’s a comparison between the default unity texture filtering options, and rendering with our new shader:

For best effect, you can click on that image to see it at exactly 100% resolution.

3 Likes

Right so what is the performance impact?

Not much. It’s a fairly efficient pixel shader. Higher quality and cheaper than screen space AA effects like FXAA. Significantly less than some of the built in shaders like displacement mapping for instance.

1 Like

If this fixes the issues I’ve had with trying to maintain a low resolution pixel art style you guys are amazing. This looks perfect for one if the next games I want to work on.

genius!

Need beta testers? :wink:


Another good example of a 3D scene with RetroAA. On the right side point filtering quickly turns into noise (that looks even worse when moving), and the close up details have a lot of visible aliasing. RetroAA on the left side anti-aliases between texels close up and keeps them looking sharp as possible when they get further away.

Absolutely amazing. I cannot wait for you guys to release this. Been a major problem for me with wanting pursue this 3D, low resolution, pixel art style. This has reignited my excitement.

So one thing I think we didn’t point out yet was that RetroAA gives you anti-aliased texture filtering, but it doesn’t anti-alias polygon edges. So you’ll want to use it to complement regular MSAA.

2 Likes

Today I added a SpriteRenderer version of the shader. This one includes alpha blending and support for Unity’s sprite atlases. Here’s an enlarged picture to show how it looks with sprites that have been rotated slightly.

RetroAA is now available on the Asset Store. :slight_smile:

We have some more ideas that we’ve been working on as well such as applying an unsharp mask filter as part of the anti-aliasing to make the pixels even sharper, and we are experimenting with Unity 5.4’s alpha-to-coverage feature for supporting anti-aliasing alpha cutouts for 3D games.

1 Like

Does this support any of the standard shader abilities? Metal/Specular maps/Bump Maps/AO/Height map?

We provide a standard surface shader, an unlit shader, and a sprite one.

The surface shader version started with the template, and we didn’t add any properties (yet). We weren’t sure which combinations people would want and if which channels they would want RetroAA applied to. For instance, you probably do want it applied to normals and specular, but maybe not AO. Parallax mapping probably would work really poorly with a discontinuities in the height map. On the other hand, it’s a surface shader so it’s as easy as possible to modify. We are also very open to requests.

1 Like

We are considering adding support for doing anti-aliased alpha cutouts using Unity 5.4’s new alpha to coverage support. This would be great for anybody that wants to mix regular anti-alising and RetroAA together to anti-alias both polygon edges and the texturing.

Is there any interest?

1 Like

There is DEFINITE interest in mixing this with regular AA, yep, though I’m a little unclear how you’d be leveraging alpha-to-coverage for that (I haven’t looked into it at all). In case it matters, we’re also using most of the Amplify plugins, so however you did it, odds are good you aren’t the only post-processing system in play, if it’s the sort of thing where you’d be moving beyond a relatively straightforward surface shader.

Very interested in getting this soon.
Personally I’d like everything to be exposed, and simple to apply or not. All properties available in the standard shader would be best to have accessable in the custom shader. And a simple check box to apply RetroAA or not.
That’s the kind of ease of use I’d really like to see.
Great work on the pack so far.

The quicksplanation version is that the GPU generates a bitmask of which subsamples in a pixel are covered by a triangle. You can modify that bitmask by a shader to control the anti-aliasing strength for a certain pixel. Alpha-to-coverage basically means modifying that coverage bitmask using an alpha value. Ex: When the alpha is 25%, turn off all but 25% of the coverage bits that the hardware said were part of the triangle.

Hello, does this asset come with non-obfuscated shader code ? I am interested in this but I use custom shaders so I will need to hack through the code to integrate it to my game.

1 Like

Absolutely! The implementation is even relatively simple, so it should be easy to extend and embed into other shaders if you want.

Hi,

I’m using your shadow stuff at the moment. How easy is it to include this, and is it a yes or no on mobile?