"Hello, since the built-in FX features in GameMaker are affected by the camera, I purchased your Post-Processing FX. After several hours of experimentation, I successfully implemented the v4 'Underwater' effect on a fixed layer (this is the only effect I need). However, I'm currently facing two issues:
The ripple variations in the 'Underwater' effect are still influenced by camera movement. My game uses the common camera-follow-player mechanic, and this visual interference is unacceptable. Did I overlook something? Is there any way to make it immune to camera movement?
I have a pause system that uses the sprite_create_from_surface function when paused. If I want Post-Processing FX to globally take over the game's rendering system (using application_surface_draw_enable(0)), it causes sprite_create_from_surface to fail, resulting in a black background appearing visually during pauses. Do you have any suggestions for modifications?"
1 - Just send the camera position to the offset parameters, using .SetEffectParameters()
2 - In this case, instead of using application_surface, use the PPFX surface. You can get the PPFX surface with .GetRenderSurface(), this way you will get the game surface with the effects applied and draw it later when pausing.
Hello, after testing, there are still some issues (likely due to my insufficient understanding of how to use this plugin correctly):
I might not fully understand the correct way to pass OFFSET parameters. I wrote:
test_renderer.SetEffectParameters(FF_DISPLACEMAP, [PP_DISPLACEMAP_OFFSET], [obj_camera.x,obj_camera.y])
But this causes an error. I found "Offset X" and "Offset Y" in PP_DISPLACEMAP_OFFSET - could you show me exactly how to use them?
I discovered the black screen issue was actually because my obj_pause disables most objects (including obj_ppfx 😅) when created. Testing shows application_surface still works normally.
Unfortunately, despite passing the camera position in real-time via the step event as suggested (tried both obj_camera.x/y and cam_get_view_xy), the water ripple distortion still shifts with camera movement - exactly as shown in the GIF. Clearly I'm missing something critical here. 🤦♂️
Hmmm idk but it looks right in my eyes (?), but maybe it was necessary to look at it another way. See the example of "layers" in the .yyz project, I implemented the camera offset there
Hey! Something rather odd is happening for me. Just bought this and read through the getting started documentation! In the create event of my fx controller:
// Disable default game rendering. Call it only once.
application_surface_draw_enable(false);
// Create ppfx system.
ppfx_id = new PPFX_System();
// Create profile with all effects.
var effects = [
new FX_Colorize(true, color_get_hue(c_orange), 200, 240),
new FX_SineWave(true, 1),
new FX_ColorTint(true,c_fuchsia)
];
main_profile = new PPFX_Profile("Main", effects);
// Load profile, so all effects will be used.
ppfx_id.ProfileLoad(main_profile);
In the Draw event of my controller:
// Draw post-processing in full screen
ppfx_id.DrawInFullscreen(application_surface);
For some reason, my game loads with a black screen. I have tried in multiple projects with the same result. I have also tried V5 and V4 (copying the code from respective documentations online)
The object is persistent (although it's only in one room so shouldn't matter)
I have tried tried deleting this code -> application_surface_draw_enable(false);
and my screen then appears but without any effects. Even with the black screen there's still no effects. It's a very odd one! The example project works fine. I've imported everything correctly just by doing 'adding all'. So no idea what's going on!
Foxy, my man, I've been mostly shader and post processing averse for my time learning GM but I've been hungering for some processing effects recently... Question though, when do you think these will go on sale next? I want to pick up this and your lighting engine but 110$ is a little steep an asset collection lol. It'd probably be worth it besides but hey :p (i'm wanderlust on discord by the by, probably kinda obvious)
Hello! I'm glad you're enjoying PPFX :D, Thanks for the kind words!
I think this is from an old version? At least in the current unreleased version (v5.0), it's there. I may have fixed this a long time ago I think 🤔, but I'm still going to release version 5.0 in some time.
I'm a complete noob to game dev and have absolutely no idea what I'm doing and I was able to figure it out. Thank you for the guide and making everything so well laid out!
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?
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.
← Return to asset pack
Comments
Log in with itch.io to leave a comment.
"Hello, since the built-in FX features in GameMaker are affected by the camera, I purchased your Post-Processing FX. After several hours of experimentation, I successfully implemented the v4 'Underwater' effect on a fixed layer (this is the only effect I need). However, I'm currently facing two issues:
Hello!
1 - Just send the camera position to the offset parameters, using .SetEffectParameters()
2 - In this case, instead of using application_surface, use the PPFX surface. You can get the PPFX surface with .GetRenderSurface(), this way you will get the game surface with the effects applied and draw it later when pausing.
Hello, after testing, there are still some issues (likely due to my insufficient understanding of how to use this plugin correctly):
I might not fully understand the correct way to pass OFFSET parameters. I wrote:
test_renderer.SetEffectParameters(FF_DISPLACEMAP, [PP_DISPLACEMAP_OFFSET], [obj_camera.x,obj_camera.y])
But this causes an error. I found "Offset X" and "Offset Y" in PP_DISPLACEMAP_OFFSET - could you show me exactly how to use them?I discovered the black screen issue was actually because my obj_pause disables most objects (including obj_ppfx 😅) when created. Testing shows application_surface still works normally.
The offset parameter needs an array. But since it's just a parameter, you can actually use .SetEffectParamater:
Unfortunately, despite passing the camera position in real-time via the step event as suggested (tried both obj_camera.x/y and cam_get_view_xy), the water ripple distortion still shifts with camera movement - exactly as shown in the GIF. Clearly I'm missing something critical here. 🤦♂️
Hmmm idk but it looks right in my eyes (?), but maybe it was necessary to look at it another way. See the example of "layers" in the .yyz project, I implemented the camera offset there
Hey! Something rather odd is happening for me. Just bought this and read through the getting started documentation!
In the create event of my fx controller:
// Disable default game rendering. Call it only once.
application_surface_draw_enable(false);
// Create ppfx system.
ppfx_id = new PPFX_System();
// Create profile with all effects.
var effects = [
new FX_Colorize(true, color_get_hue(c_orange), 200, 240),
new FX_SineWave(true, 1),
new FX_ColorTint(true,c_fuchsia)
];
main_profile = new PPFX_Profile("Main", effects);
// Load profile, so all effects will be used.
ppfx_id.ProfileLoad(main_profile);
In the Draw event of my controller:
// Draw post-processing in full screen
ppfx_id.DrawInFullscreen(application_surface);
For some reason, my game loads with a black screen. I have tried in multiple projects with the same result. I have also tried V5 and V4 (copying the code from respective documentations online)
The object is persistent (although it's only in one room so shouldn't matter)
I have tried tried deleting this code -> application_surface_draw_enable(false);
and my screen then appears but without any effects. Even with the black screen there's still no effects. It's a very odd one! The example project works fine. I've imported everything correctly just by doing 'adding all'. So no idea what's going on!
Hello!
I think it might be the "Automatically remove unused assets when compiling" option in Game Options > General? (I recommend to disable it)
It seems to be that I wasn't using the Post-Draw event as specified in the documentation D: Apologies!!
Foxy, my man, I've been mostly shader and post processing averse for my time learning GM but I've been hungering for some processing effects recently... Question though, when do you think these will go on sale next? I want to pick up this and your lighting engine but 110$ is a little steep an asset collection lol. It'd probably be worth it besides but hey :p (i'm wanderlust on discord by the by, probably kinda obvious)
Hey!
Turn on notifications to be notified of Sales when they appear, it happens a few times during the year :D
Understood, I await that moment! your assets are super cool, excited to show you what I've done with them (;
Loving it so far. I did notice a slight mistake in the FX_HueShift function that I wanted to mention.
It hard-codes hue to 0, so that it doesn't matter what I enter in the arguments, it won't change the hue:
settings = {
enabled : enabled,
hue : 0,
saturation : saturation,
preserve_luminance : preserve_luminance,
};
I had to manually change it to:
settings = {
enabled : enabled,
hue : hue,
saturation : saturation,
preserve_luminance : preserve_luminance,
};
Maybe it's me who was using this incorrectly somehow, but that's how I got that function to work. :-)
Anyway, thanks for making this wonderful set of FX.
Hello! I'm glad you're enjoying PPFX :D, Thanks for the kind words!
I think this is from an old version? At least in the current unreleased version (v5.0), it's there. I may have fixed this a long time ago I think 🤔, but I'm still going to release version 5.0 in some time.
I'm a complete noob to game dev and have absolutely no idea what I'm doing and I was able to figure it out. Thank you for the guide and making everything so well laid out!
I'm glad to hear the process went smoothly! Thanks for the feedback ^^
Recently purchased this and love it. Thank you, really easy to learn and use.
I'm glad you like :D Thanks for the kind words!
Just bought. Thanks for spending your time on making these. No brainer purchase.
I hope you like it! :D Thank you. If you have any questions about the implementation, feel free to ask on Discord =]
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.