Updated to v1.1.0 on 2015-02-01

A simple to use FXAA (Fast Approximate Anti Aliasing) shader for your project. It is based on NVIDIA's FXAA method and as a result is very efficient. Use it to replace the default Anti Aliasing method that comes with GameMaker:Studio.

For more details on FXAA, read this Wikipedia article.

Using the shader:

Included in the package is a premade object that does post processing effects in the simplest possible way with GameMaker:Studio. Just drop it in your project and it works.

Alternate use:

Otherwise, to use the shader on something else than post processing, simply use it like this:

var tex = sprite_get_texture(sprite_index, image_index); // REPLACE THIS WITH THE SPRITE YOU WANT TO DRAW
shader_set_uniform_f(shader_get_uniform(sha_fxaa, "u_texel"), texture_get_texel_width(tex), texture_get_texel_height(tex));
shader_set_uniform_f(shader_get_uniform(sha_fxaa, "u_strength"), 4);


The project is hosted on GitHub and open to contributions.

Keep in mind that the YYG Marketplace EULA still applies.

Patch Notes:


  • Added a uniform to allow the strength of the effect to be changed

End User Licence Agreement (EULA).

Version 1.1.0. Published February 2, 2015

Created with GameMaker: Studio v1.99.344

Age Rating: 4+

Average Rating

Your review

You can only review assets you've bought.


Anonymous 03 May 2019

Problem with full screen resolution in 2D games.

I do not know what the reason is, but when using the shader in full screen mode, the image does not scale in accordance with the resolution.
Example before:
Example after:


Anonymous 30 March 2019


It is a good shader that does its job, but increasing the strength starts to blur the render. Nonetheless, it is a good shader.


Anonymous 21 March 2019


Anonymous 01 March 2019


Does what it promisses at an unnoticable performance loss. Saved me, because Interpolation doesn't affect drawn shapes and the built in solution is to slow.


Nathan A 26 November 2018


Anonymous 20 November 2018


orbis s 12 July 2018


Associação F 23 March 2018


Magnus R 08 March 2018


Sol B 04 March 2018


YunSeong J 31 December 2017


Ali A 14 November 2017

its good

I am uses for my 3D game for mobile platforms


Yihang X 06 July 2017


Anonymous 05 March 2017


Christoffer K 09 February 2017

Great! Works with GameMaker Studio 2

Good to have while the one build in to gamemaker 2 does not work :)


Sergey P 08 August 2016



Thiago D 28 July 2016

It does what promises

It's very easy to add this to your game. Performance: Good, How it looks: Ok-ish, some textures might be blurried on the wrong parts, but there's no perfect FXAA, it's been always a trade between more performance/best graphics.

It could have an script that can allow the developer to implement more easily, an option both FXAA and Built-in AA or noone, it would save some time for the developers, but tbh, that would just be an bonus and is not hard to do that for yourself.

Do I recommend this asset? Definitely, it works, it's nice, it's free.


Chreech O 11 February 2015

Not that impressive..

Well i am not here to disappoint you but this is no match for gm inbuilt display_reset() function. I ran your shader in full strength in a 3d fps game and it aided a very little to jagged edges while when i use inbuilt display_reset() at level 8 it renders the whole 3d model very precisely there by making each and every edge look smooth. However it consumes way too much power. Therefore i am looking forward towards an improved version of edge smoothing shader specially for 3d models that consume less power than GM inbuilt function or at least is compatible with other shaders unlike gm inbuilt display_reset().


Pyramind Beyond (Publisher) 23 February 2015

Thank you for taking your time to post a review!

I want to say first that running the shader at full strength has pros and cons. To put it as simple as possible, a higher strength means edges that are closer to 90° (Or 0°, 180°, 270°) will get AA'd more, but as a result angles that are closer to 45° (Or 135°, 225°, 315°) will get unnecessary blur. Find a middle ground for that value that fits your artistic vision.

The difference between the built-in AA is at which level they work. The default AA works by using extra sample whiles in the middle of the rendering process. FXAA waits for the whole scene to be rendered and then runs an edge detection algorithm and blurs those edges. It will therefor sometimes catch edges that shouldn't be AA'd but will also catch edges that conventional AA can't do.

As you said, the default AA necessitates much more power. FXAA is very efficient for the result it gives.

The main thing people usually complain about with FXAA is unwanted blur.


Brendan F 30 January 2015

Works great, looks great, Very easy to implement!

I tried this with my puzzle platformer. From a distance it looked really good and made all the larger sprites look really great. However my game features some sprites that are only 4 or 5 pixels tall, and my grass is only a pixel wide. These small sprites became really blurred and just looked bad. However if your game uses sensible sized assets or is in anyway 3-D this shader will make your game look a lot better than GMs built in AA. (which I don't think is even worth using)

This review was left for a previous version of this asset.


Pyramind Beyond (Publisher) 30 January 2015

Hi and thanks for your review!

To make things clear, the reason small things become blurry is because of the algorithm used. In other words, that's just what FXAA looks like.

Package contents

Loading, please wait

What is the issue?

Back to Top