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.
Otherwise, to use the shader on something else than post processing, simply use it like this:
shader_set(sha_fxaa); 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); draw_self(); // REPLACE THIS WITH THE SPRITE YOU WANT TO DRAW shader_reset();
The project is hosted on GitHub and open to contributions.
Keep in mind that the YYG Marketplace EULA still applies.
Version 1.1.0. Published February 2, 2015
Created with GameMaker: Studio v1.99.344
You can only review assets you've bought.
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: https://ibb.co/DRRyKXQ
Example after: https://ibb.co/mRXRWk7
It is a good shader that does its job, but increasing the strength starts to blur the render. Nonetheless, it is a good shader.
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.
I am uses for my 3D game for mobile platforms
Great! Works with GameMaker Studio 2
Good to have while the one build in to gamemaker 2 does not work :)
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.
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().
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.
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.
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.