Post-Processing FX
A downloadable asset pack
Post-Processing FX has been selected in the category "Best GameMaker tool"! Please vote here: https://opr.as/GMA24-Vote
Documentation | DEMO: Click here to open.
🔥 The most efficient, easiest and robust post-processing library available for GameMaker. All in a 2 MB package!
😍 Post-Processing FX is a project that aims to make your game look beautiful, with 50+ ready-made customizable effects.
✅ Much more efficient than built-in filter effects;
Unlike all other similar ones, with PPFX, you have HDR mode and you can use all effects at the same time! (Saves GPU/CPU usage if the effect is not in use!).
A BIG RELEASE IS OUT! v4.0
- Works great with 2D Pixel-Art and HD games. 3D is also supported, without extra overhead;
- Extreme easy to use and highly customizable, whether you're new to GML, or an experienced developer. You can start just creating the system with a function, create a profile with the effects and then use the drawing function 🙂;
- 50+ professional effects (If this seems like a lot to you, don't worry, they are optimized to work together, and you will eventually use them - you can remove the effects you want!);
- Lighting & Lens
- Bloom Light (Blender-based) >> HDR support + Dirt Lens + Anti Flicker + High performance;
- Slow Motion / Drunk;
- Godrays / Sunshafts >> Rays animation support;
- Chromatic Aberration >> Spectral/Prism LUT + Blur support;
- Depth of Field >> Bokeh shape (customizable), near+far, supports 2D and 3D (BBMOD);
- Gaussian Blur >> Downscale + Mask support;
- Kawase Blur >> Mobile blur [high performance];
- Motion Blur >> Mask + focus support;
- Radial Blur >> Position support;
- Mist/Fog;
- Color Grading:
- Color Curves >> YRGB + HHSL for precise color grading;
- LUT >> 2D strips, 3D grid, 3D hald + .cube support;
- Palette Swap >> Luma-based + cool stuff;
- White Balance >> Color temperature;
- Shadows, Midtones, Highlights;
- Lift, Gamma, Gain;
- Exposure;
- Brightness;
- Saturation/Grayscale;
- Contrast;
- Hue Shift >> Preserve luminance support;
- Colorize >> Preserve white support;
- Color Tint;
- Channel Mixer;
- Invert Colors;
- Channels >> Controls RGB output;
- Posterization >> Colors reduction;
- Transform:
- Screen Distortion >> Texture support;
- Shockwaves Distortion >> Spectral/Prisma LUT support;
- Lens Distortion;
- Panorama >> (FNAF-like);
- Pixelize >> Steps support;
- Rotation;
- Zoom;
- Sine Wave;
- Shake >> Individually controlled speeds allow the shake to be just horizontal, vertical or both! + Perfect randomization;
- Swirl;
- Artistic:
- VHS >> Old TV filter;
- Scanlines;
- Dithering >> 4 modes + four bayer matrix textures;
- Film/Noise Grain >> Texture + Movement support + more;
- Glitch;
- Cinema Bars;
- Fade;
- NES Fade >> 8-bit Console transition;
- Border;
- Tone Mapping (ACES, Uncharted 2, Lottes and Unreal);
- Enhancement & Others:
- Sharpen (SOON...);
- FXAA (v3);
- HQ4x;
- Color Blindness Correction >> Protanopia, Deutanopia and Tritanopia;
- Texture Overlay >> Blend modes support;
- Compare (Debug) >> very useful for comparing composition!
- Lighting & Lens
- Profiles;
- A collection of effects to use;
- Change the mood of your game globally in real time! Useful for games where there are several different environments/rooms;
- Create and load as many as you like;
- Layers;
- Easily apply the effects in multiple room layers, it can be individual or in a range too!
- Both room-based and camera-based sizes;
- There is an example showing this;
- Areas;
- Draw a normal sprite, with the effects inside it! Use the sprite as a mask. Useful for glass UI, game logo, and many others!
- Post-Processing FX can also be applied to the GUI;
- There is an example showing this;
- There is an example showing this;
- The PPFX is modular. Everything works individually and at the same time together!
- All effects can work together or individually!
- Fast shader compilation;
- Apply the effects in your game in less than 10 minutes! (for real);
- Cross-Platform;
- Windows, Mac, Ubuntu, Android, iOS, HTML5, OperaGX, UWP, Playstation 4, Playstation 5, Xbox One, Xbox Series X | S and Nintendo Switch.
- GameMaker version;
- Works on 2D and 3D games;
- Uses GLSL ES;
- Works on: x64 and x86 runner. With YYC and VM;
- Split-screen compatible;
- Compatible with Bulb, Scribble, BBMOD;
- It should work with other libraries;
- Compatible with other external effects;
- Feather documentation.
- Includes 15 usage examples (.yyz project);
- Basic UI system (belongs to the example only);
- Includes a camera object (belongs to the example only);
- Target object;
- Horizontal and vertical margin to start moving;
- Smooth movements;
- Zoom.
- All example codes are commented to understand how each part works. All the code is super organized and well written;
- No name conflicts;
- Dedicated Discord server for support;
- LUT Pack (18 images);
- Source project ready-to-use.
- Super lightweight package! Only 2MB (.yymps) - even less, if you remove things you don't need from the package!
- Free updates forever!
🔶 PPFX is more than just effects... there are some very useful features you didn't even know you needed! Don't worry, it's all modular and removable.
- Q: Is it difficult to import into an existing project?
- A: No, there are several examples in the project showing how simple this is to do. All you need to do is import the .yymps file into your game and use the appropriate functions to apply the effect to the screen.
- ----------------------------------------
- Q: What is the shader performance?
- A: All effects are super lightweight (includes Bloom), run smoothly on Android and on weak computers. Although some effects like DOF may need more GPU, but you can configure.
- ----------------------------------------
- Q: How I learn to implement in my game?
- A: There is a manual with detailed information that will help you to implement it quickly. If you have questions, send a message on Discord.
Technical support available! -> Discord and Email.
Post-Processing FX forum devlog
By purchasing, you agree that you may not resell or redistribute the source code in any way (ex: GitHub and Marketplace). The compiled product can be used commercially in any game or software.
Do you think your time is valuable? So don't waste your time doing something that has already been created, get PPFX kindly now.
Purchase
In order to download this asset pack you must purchase it at or above the minimum price of $34.30 USD. You will get access to the following files:
Download demo
Development log
- Post-Processing FX v4.0.3Sep 26, 2023
- License updateSep 03, 2023
- Post-Processing FX v4.0.2Aug 29, 2023
- Post-Processing FX v4.0.1Aug 23, 2023
- Post-Processing FX v4.0Aug 21, 2023
- Post-Processing FX v4.0 (BETA!)Aug 14, 2023
- Post-Processing FX v3.1.1May 04, 2023
- Post-Processing FX v3.1Apr 28, 2023
Comments
Log in with itch.io to leave a comment.
350 brl sad
350 RMB sad
These effects look awesome, my man! I've been eyeing this for a while, but being Brazilian is so hard lol :')
Any chance there'll be a sale anytime soon?
Thank you Argoos! ^^
Usually when sales appear on Itch.io, I also do it with my libraries
This is a breeze to use, honestly one of the best game maker assets ive bought.
Thank you very much! I am very happy to read comments like this. It is the best part of so much effort put into the project :D
Is this compatible with Rpg maker MV?
Hello! The library is made for GameMaker engine specifically
Ok
this is an amazing plugin. thank you so much, foxy. one question though, how do you apply the effects to the GUI layer? i added ppfx_id.DrawInFullscreen(application_surface) to the Draw GUI Begin event but it doesn't affect anything on the GUI layer
Hello! Since the Draw GUI event is not part of the application_surface and is not a surface, then the effects applied to the application_surface do not affect the GUI. The solution is to draw the UI in the Draw End, for example. There is an example of this in the .yyz project. Thank you! :D
Can I alter the location of the Kawase blur's clear/blurry areas? I know I can change the mask area for any effect. Still, the part of the blur that's clear in a Kawase blur is always in the center of the screen, no matter where the mask is, making me unable to have the clear area follow the character as the character approaches the end of the screen.
I didn't implement this to improve performance, as I didn't think it was necessary. But you could use the Depth of Field effect, which allows you to define exactly the areas where you want to blur.
How exactly do you control which part of the screen is in focus? I've adjusted all the settings extensively and I can only ever get the whole screen to be blurred, or none.
Create a mask surface cleared with black color, them draw a white shape inside, which is the focus area. Send this surface as texture to the effect, using .SetEffectParameter(). Don't forget to enable the "Use ZDepth" parameter in the code.
Does this work on webgl builds?
Hello, yes all shaders are written in GLSL ES
I have a Question:
Could I implement these Shaders into Minecraft (In my own MC Mod)?
Hi! The shaders are structured to work in GameMaker, and all of them rely on GML code to work, so porting to Minecraft wouldn't work "as is". The license only covers use with GameMaker, but if your mod is only and exclusively for personal use and you are not going to redistribute it, that's fine.
Ah Ok!
I wanted to publish my Minecraft Mod (you can't even get money from it because Minecraft said that Mods must always be free.)
Oh yes, publishing the mod for free would be direct distribution, sorry about that. Thanks for asking though :)
Okay!
This is very well made. Great job. Would love a more detailed manual, with a section for each effect.
Thank you!
Every effect (and other things) are documented, just enable Feather and hover the mouse on the functions ;)
Great, thanks! Not a big fan of feather, but I can toggle it.
Hey! it would be great if you there we're some examples of shockwaves in the documentation, i didn't find anything :(
Hey, there are implementation examples in the .yyz project. I can include it in the documentation later (as a tutorial), thanks for the suggestion ;)
Hi, I imported it into my game.. used the getting started code to try but my game does not show up anymore.. it show only one room with the effect but other will not display
Hi, make sure the object is persistent, this way it is not destroyed when changing rooms. Unless you want to manually place it in all rooms.
I finded why it was not working properly.. even if the object was persistent.. it was because the object was not the first created in initialization's room
I do not understand how to properly use i HQ4X in my pixel art game... it makes everything so blurry
The purpose of the HQ4x effect is to turn pixel-art into HD art, but you need to experiment different parameters. If you have more questions, send them on Discord, it will be better to answer there :)
Very exciting. I'll be sure to pick it up if it goes on sale!
It's on offer right now, enjoy ;)
I am a noob. totally. I bought this...I did like it said, installed in ten minutes. Even got support! These effects will TRANSFORM your game...think creatively....I cannot OVERSTATE how awesome this is. GM should pay this man like 100k to buy this extension! It is THAT awesome. Thank you fox, can't wait for your lighting and other stuff, because simply they are easy for new people like me to integrate into their project how you do them!!
I'm so glad that you like PPFX, seriously, thank you very much for your kindness. It's a pleasure to help ^^
good job dude, I bought it yesterday, but I didn`t find CRT effect, Can I make a CRT effect? (Sorry for my bad English)
Hello, yes you can;
The CRT effect is made using a combination of the effects that Post-Processing FX gives you. You can mix it up until you get there (for example: Lens Distortion + Scan Lines + Vignette + VHS, etc).
Note: If you need Dot Matrix stuff, this is a work in progress. But you could use the FX_TextureOverlay() with "multiply" blendmode to achieve this.
Thanks ^^
OK. Thank you!
Looks impressive! Are these regular OpenGL ES shaders that could be used with other game engines as well or do they rely on specific Game Maker features?
Thanks! The license says that Post-Processing FX (including its source code) can only be used with GameMaker.
Thanks for your answer. Is there a reason for it?
I'm asking because GLSL ES is a shader language that's commonly used in a variety of game engines.
Yes, other engines already have a big monopoly, especially Unity (which even has a similar model license for assets made in it - like URP), so I'm using the same tactic.
Did I miss the winter sale? I'm eyeing this asset pack very hard, looks amazing!
It started today, enjoy ;)
It is impressive how EXTREMELY EASY it is to implement this package in a project, it also takes up very little storage space but at the same time has an immense variety of effects, foxy of Jungle is literally god.
I have a small problem, when I use the debug ui, and activate or deactivate an effect, nothing happens on the screen, I can only control the effects that I had already activated by code
Thanks a lot, I'm glad you're enjoying it ^^
You need to import the profile with the effects you want to use, this way you can activate and deactivate the effect.
Oh ok, thanks!
This is a terrific app and I'm so glad I found it!
I'm trying to use the Layer_renderer, but as mentioned in the documentation it does not work with my 3D camera.
Is there a workaround to using only Bloom+Sunshafts for a single layer? I'm using a 3D camera but I'm not trying to draw 3D models, I'm only using 2D sprites, but I don't want bloom and sunshafts from all of my (often stark-white) objects, and without drawing to layers everything works as-intended
Hello, Noahtroduction, I'm glad you like it :D
The most correct way to do this is using HDR.
This way, you can select exactly which pixels will glow (with bloom and sunshafts), independent of the layer, in addition to getting better performance, than applying an entire system to a layer, just for sunshafts and Bloom. I have another library that handles this, if you're interested.
Thank you for your kind reply and for pointing me to a good solution, I was going to ask if it was compatible with PPFX but it already looks like that's the case. If it works anything like like PPFX I'll probably have that in my game as a solution before tomorrows' done, thank you!
It is amazing!!! Highly recommended. Works just as described. There is no Post Effects pack like it! Thank you so much for the amazing work.
I'm so glad you like it! :D
thank you for the kindness ;)
It is incredible, I tried lots of different post effects plugins/assets, but this was by far the best, everything worked seamlessly on HTML5 export which I mostly use. Genius!
Can't wait for the winter sale!
Does this work across multiple viewports? The layer effects that come with Gamemaker are nice, but completely break if there are multiple viewports present :(
Yes! Works fine with multiple viewports ;)
This is super amazing! Are there any sales happening anytime soon? :3
Thanks! Winter sale. :)
Hi! New owner, amazing showcase of tools here - can't wait to implement some things. Dumb question -- where is the manual?
Hey! Welcome :) Thank you!
Here's the manual: https://kazangames.com/assets/ppfx/docs
Also, this is my Discord server:
https://discord.gg/aGv4peF
Some fx doesn't work on MacOS like sunshafts (showing some little rectangles)
Ah yes, I'm aware that Sunshafts doesn't work properly on MacOS. I'm working on it. What other effect doesn't work? I fixed the Gaussian Blur in the last update, which is what was reported.
In FX after ShockWave I got error:
"
ERROR in
action number 1
of Draw Event
for object __obj_ppf_rain_renderer:
Platform doesn't support surface created with format 14
at gml_Object___obj_ppf_rain_renderer_Draw_0 (line 12) - rain_surface_a = surface_create(width, height, surface_rgba16float);
############################################################################################
gml_Object___obj_ppf_rain_renderer_Draw_0 (line 12)
gml_Script_anon_PPFX_DisplaceMapRenderer_gml_GlobalScript___ppf_displacemap_system_2478_PPFX_DisplaceMapRenderer_gml_GlobalScript___ppf_displacemap_system (line 105)
gml_Object_obj_ppfx_displacemaps_Draw_0 (line 3) - displacemap_renderer_id.Render(ppfx_id, view_camera[view_current]);""
In some examples I also have glitches on the screen. I dont have time to test exactly. Of course some FX work correctly..
Ah ok, this is not part of the PPFX, but the rain example. Your GPU does not support the used texture format - I will include a warning so that an exception does not occur.
The glitches you saw are most likely caused by 1 or 2 effects that are incompatible with your GPU - I'm working to fix it. In the examples I use them in some places. I believe ~97% of the effects work correctly.
Hello, I've posted an update that fixes the rain example. Could you check? I also made some changes to the Sunshafts effect, tell me how it behaves on your GPU. Thanks :)
I use this in a few of my professional projects and couldn't recommend it more! It's fantastic and worth every dollar.
This comment means a lot to me :D I'm flattered. Feel free to share your creations here too, I'm sure more people will enjoy seeing them 😁
Here's a quick peek at some bloom/color grading effects provided by this asset!
Wow! looking pretty cool honestly. Thanks for sharing
It's amazing and ready-to-use!
I'm glad you like it, thanks :)
can the shockwave effect work with platformer games where character has a following camera.Already love the effects and set to buy
Yes, the shockwaves can be anywhere in the room. The asset calculates everything automatically. Camera zoom is also supported. Thanks ^^
awesome this when have seen notification that you replied. thankyou so much for the feedback because thats one challenge i had with one shader couldn't add effect after camera moved beyond first part of the room because your tool will make me make crazy game feel experience soo excited
I hope you have fun! If you have any questions, just enter the Kazan Games server and clear your doubts. Also take a look at the manual to see how it works.
Thanks finally got the package today time to testing out the first part had asked about shockwaves
Great! :D I hope you have fun, thanks :)
Post-Processing FX v3.1 Released!
Well done. I wish there were more professional assets for game maker like this.
Thanks a lot ^^
I'm glad you like it! :D
Hey,
the asset pack is really great.
But I have a couple of problems with the layer system. When I turn off the draw function to use the layer function, post processing is not being applied after a room switch.
Also the apply function randomly starts showing "layer_effects_id" as an error but also shows it as correct sometimes. Maybe that has something to do with it.
I followed all the steps in the layer section of the documentation and I can't find the error :D
Hey SoulPixel,
I'm glad you're enjoying Post-Processing FX ^^
Do not disable the "draw_layer" parameter of the ppfx_layer_apply() function. I had made a modification to that function and it hasn't been updated in the manual yet, I will soon.
The error line is a Feather xD thing, so it's not a PPFX issue currently, don't worry.
Remember to pay attention to the order in which you insert the layer id, and check if there is a "warning" message in the Console.
Cheers! ^^
Ah yes the draw_layer parameter was the one issue!
The Layer id should be in the right order.
Now the layer system works in all of my menu screens.
But in-game everything included in the layer post processing effects is not getting rendered. (Right now every layer except my UI)
That's weird because the fullscreen draw functions work great in every room.
Does it have something to do with my camera?
Hey, I saw you joined Discord server, I'll answer you there :)
Hi, this is an amazing asset and I would recommend this to anyone!
Quick question though! Can I change the sunshaft effect to black as if casting a shadow?
Hey, Thank you!
You had luck! The Sunshafts effect takes 14 arguments, so there is one left, which could be the color xD, so it's possible to blend a color, which can be black.
Thanks for the suggestion! :D
Ah haha the planets align, sounds perfect! Thank you.
Absolutely, would recommend.
Is it compatible with mobile phones? (Android/iOS)
Hello!
Yes, Post-Processing FX is cross-platform. :)
If you find any bug, you can contact me on Discord and we can fix it.
Great to hear that. Sure!
Please also release it on Yoyogames official marketplace to showcase the true powers of GMS to newcomers.
Post-Processing FX is also available on Marketplace :)
Great👍👍
My dumbass bought this thinking It was for godot, I clearly didn't read, I was just excited to make my job easier.
Now I'm stuck with it lol
Unless you learn GameMaker, the best 2D engine :P
I hear gamemaker is easier to learn though i already started learning in godot and love it and it does feel more versatile for when I make 3D games. I'll most likely just give the pack away to someone else who uses gamemaker.
I'm glad you're enjoying it, it's great to feel comfortable with what you do and that's what matters. Nice attitude to give someone the project! ^^
Thanks! I'm very happy that you liked it! ^^
Hello Foxy!
First, can’t praise your work enough! This is a great asset & really has helped me solve some hurdles for my own game.
Second, and the main meat of this message, just wanted to suggest a slight enhancement to your layers system Would it be possible to instead of focusing on a layer ID, could effects be implemented based off depth as well? Ideally, I think having both available would just increase the flexibility of this amazing asset package you have here, but I lack the expertise to know if this would be too much of a pain in the butt to accomplish.
In any regard, this is just some thoughts I’ve had recently using your layers system, please take it with a grain of salt! XD
Thanks again for your dope work! -Abstract the Origin
Hi! Thank you ^^
This can't happen due to the way it works internally (the Layer system uses layer_script, which asks for layers and not depth), sorry... Thanks for the sugestion!
No worries! Never hurts to ask! :D Have a dope day!
To anyone considering buying this asset - Just Do It!
Hands down one of the best assets you will find for GMS2 - fantastic quality product and exceptional support.
I'm so glad for this comment! Thank you so much! ^^
Hey, like the last comment said i would really like a way to use efects on objects. can you work on that as well?
Hi! We recently added the Layer System, which means you can use post-processing on single objects, backgrounds, sprites, and more:
In the image above, I applied the glitch and scanlines effect on my player, which is a tree. And the background also has some effects.
LOVE YOU
Thanks ^ ^
please let me know when the docs are updated so i can see how i can use it! Thanks
Sure! Please note that there are 13 separate examples. One of them is about layers.
I bought it and felt great. However, there is a question: can it be used for an object or instance alone. Like a torch or a flaming arrow?
Hey!
PPFX has a drawing function called ppfx_draw(surface, x, y, w, h, view_w, view_h, system), which receives a surface, so it's more recommended for screen post-processing only. In the future I intend to make an asset only with effects for objects.
OK, I see. Thank you for your reply!
Is there a demo to download? The link above just links to the license text file?
Hey! There is no demo, only the video at the moment. But I can later make the HTML5 version of it available. :)
Hey again, I just added the demo:
https://kazangames.com/assets/ppfx/demo/
Hi, very cool stuff, I'm very interested in getting it for a project, I was wondering if you provide tech support sometimes? I would like to draw the effect only to an area if the screen via sn arbitrary sprite as a mask, is this possible with this tool?
Do you have a discord server?
Thank you!
Hi! Yes, we are pleased to answer any questions you may have on Discord: "Kazan Games":
https://discord.gg/4azKEdMNze
Yes, it is possible to do it. I will even do some example demonstrating this in future updates.
Thanks for getting in touch! :)