Post-Processing FX v3.0


Post-Processing FX v3.0 Released!

Hey everyone! After several months of hard work, I'm so excited to announce the biggest and best version of this project's history. Version 3.0 of Post-Processing FX!

The most significant change you'll notice is that the entire syntax of Post-Processing FX functions has changed for the better, which has made it more performant too! The new syntax is OOP, as opposed to the old one, which makes it more evident that PPFX is modular, and that makes some things easier too.

Please read carefully what has been changed as it will cause many syntax errors if you have already added it to your game and want to use the new version 3.0. The changes were necessary for the improvement of the product. You can replace any code with CTRL + SHIFT + F.

HDR Support!

Post-Processing FX is now fully compatible with HDR, which allows for better image quality. Bloom now is particularly beautiful and much better! (and Godrays/Sunshafts too!):


This update also brings lots of new effects, including VHS, HQ4X and Slow Motion! Several bugs were fixed and some new features added.

The documentation has been fully updated, you can check it out here.

See the whole thing below:

[ADDED] HDR support (RGBA16 and RGBA32) - for Better Bloom and Sunshafts/Godrays quality and overall image contrast and brightness
This change causes incompatibility with previous versions of GameMaker, which is why this is a major release
[ADDED] VHS effect
[ADDED] Slow Motion (Ghosting/Drunk) effect
[ADDED] Realistic rain effect (with example included)
[ADDED] HQ4x (pixel-art upscaling) effect - BETA
[ADDED] Hue Shift effect
[ADDED] Color Tint effect
[ADDED] New Colorize effect (with hsv mode)
[ADDED] New Noise Grain effect
[ADDED] New Sunshafts effect, with HDR support and faster than before
[ADDED] New Panorama effect (more optimized and lets you change both depths at the same time)
[ADDED] Bloom effect can now turn white in center of glow (adjustable)
[ADDED] Tone Mapping for Bloom's Dirty Lens
[ADDED] New function: make_color_ppfx() - This function supports hexadecimal colors
[ADDED] New method for PPFX_System class: GetStackSurface(), which allows to get the specific surface of the stack, instead of just the last one
[ADDED] New method for PPFX_System class: DrawInFullscreen(), which allows you to easily draw the post-processing in full screen
[ADDED] New method for PPFX_System class: ProfileUnload(). This function removes any profile associated with this post-processing system
[ADDED] New method for PPFX_System class: Clean(). Useful for when toggling effects and want to make sure existing surfaces are destroyed
[ADDED] New method for PPFX_LayerRenderer class: SetRenderEnable()
[ADDED] New method for PPFX_LayerRenderer class: IsRenderEnabled()
[ADDED] New function for debugging: ppfx_debug_draw()
[ADDED] New "Red Cyan" chromatic aberration palette
[ADDED] PP_ZOOM_RANGE parameter to Zoom effect
[ADDED] PP_SUNSHAFTS_DEBUG parameter to Sunshafts effect
[ADDED] PP_SUNSHAFTS_RAYS_INTENSITY parameter to Sunshafts effect
[ADDED] PP_DOF_DOWNSCALE parameter to Depth of Field effect. Allowing you to define the downscale level, for better definition of the bokeh
[ADDED] Error message to prevent drawing the post-processing system manually, if it is being applied to a layer at the same time
[ADDED] Warning message if you try to use .Apply() in the wrong event
[ADDED] New improved 3D example
[ADDED] Full Feather help of all effects
[FIXED] Many optimizations in render shaders
[FIXED] Many optimizations in all systems
[FIXED] Bloom debug mode improved: now shows the area where the dirt lens reaches too
[FIXED] Bloom effect now behaves correctly when dirt lens intensity is changed and while using HDR
[FIXED] Shockwaves are now rendered in the correct resolution (from the application_surface) instead of the viewport
[FIXED] Sine Wave not working on some Mac devices
[FIXED] Noise Grain not working on some Mac devices
[FIXED] UV precision of some base effects on Android
[FIXED] Missing PP_SHOCKWAVES_ABERRATION and PP_SHOCKWAVES_PRISMA_LUT_TEX parameters
[FIXED] Motion blur now calculates the speed correctly in the example
[FIXED] Motion blur example optimized
[FIXED] Depth of Field bokeh shader optimized (reduced shape math)
[FIXED] Depth of Field stack: texture repeat was causing bokeh artifacts at the edges
[FIXED] Depth of Field CoC shader optimized (removed encode/decode of depth buffer - with the new RGBA16 texture format this will no longer be necessary)
[FIXED] Sunshafts optimized and increased compilation speed
[FIXED] Sunshafts effect is now drawn after Bloom effect, this way Bloom is not harmed by Sunshafts' rays
[FIXED] Memory leak while using Sunshafts effect and the room is restarted
[FIXED] In HTML5, profile IDs are not always unique
[FIXED] GPU culling is not set when using Post-Processing in 3D world (causing black screen sometimes)
[FIXED] Improved "Night Vision" example
[FIXED] Small freeze while moving camera in "Profiles Advanced" example
[FIXED] Post-Processing continues rendering if global intensity is 0
[FIXED] Small optimization in final shader
[FIXED] Gamma correction, lift and gain are now fully set after color grading
[FIXED] Missing Feather help lines
[FIXED] Removed unused uniforms from Gaussian Blur effect
[FIXED] Post-processed layers are now with the correct resolution (from application_surface)
[FIXED] All Feather errors and warnings
[FIXED] All shader uniforms have been renamed to start with the "u_" prefix, to better differentiate them from other variables
[FIXED] Checking for existence of the post-processing system is now more efficient
[FIXED] Memory leak in 3D example
[FIXED] Small things
[CHANGED] The general syntax of Post-Processing FX changed to PascalCase. This mainly helps with performance and modularity. Many other functions are now in methods, inside Constructors.
This also makes PPFX similar to other modern assets.
[CHANGED] PP_EFFECT enum name to FX_EFFECT
[CHANGED] Shockwaves default speed is now 1, instead of 0.01
[CHANGED] Renamed "__spr_ppf_prism_lut_sw" sprite to "__spr_ppf_prism_lut_cp"
[CHANGED] The old Hue Shift effect was actually misleading, so it has been changed completely
[CHANGED] PP_HUE_SHIFT_COLOR to PP_HUE_SHIFT_HUE
[CHANGED] PP_COLORIZE_DARKNESS to PP_COLORIZE_LUMINOSITY
[CHANGED] Renamed "darkness" parameter of "Colorize" effect to "luminosity". And now the value is inverse and 0.5 is the default
[CHANGED] Renamed PP_PANORAMA_IS_HORIZONTAL to PP_PANORAMA_IS_VERTICAL, because it was wrong all along
[CHANGED] Dithering effect: "coord_absolute" was replaced to "scale". The default is 1
[CHANGED] Renamed "view_w" and "view_h" to "screen_width" and "screen_height" from ppfx_draw() function, so you don't confuse it with viewports only
[CHANGED] Bloom's "Reduce Banding" paramter now is off by default
[CHANGED] PP_DOF_FOCUS_RANGE parameter is now reversed, 1 is the max range now
[CHANGED] PP_BLOOM_HIGH_QUALITY was changed to PP_BLOOM_DOWNSCALE. It is now possible to define the quality level precisely
[CHANGED] Parameters order of Sunshafts effect, for better consistency with the other effects
[CHANGED] LUT3D effect is now called LUT (because in the future it will also support 2D LUTs)
[REMOVED] ppfx_application_render_init(), ppfx_application_render_free() and ppfx_application_render_set_enable(). Use application_surface_draw_enable() instead
[REMOVED] make_color_hsv_ppfx() function. Use make_color_ppfx() instead
[REMOVED] "Reduce Banding" option from Bloom effect. As HDR has been added so this is no longer needed (also a performance gain - CPU/GPU)
[REMOVED] Old Noise Grain effect
[REMOVED] Old Hue Shift effect
[REMOVED] Old Colorize effect
[REMOVED] PP_SUNSHAFTS_DUAL_TEXTURES, PP_SUNSHAFTS_WORLD_TEX, PP_SUNSHAFTS_SKY_TEX. (With the HDR feature, this is no longer necessary)
[REMOVED] "lift_amount", "gamma_amount", "gain_amount" paramters from "Lift Gamma Gain" effect. This is no longer necessary as the colors are already HDR

Thank you so much for listening! :D

(Please review the asset, this helps a lot :D)

Files

PostProcessingFX_v3.0.yyz 40 MB
Apr 22, 2023
PostProcessingFX_v3.0.yymps 2 MB
Apr 22, 2023

Get Post-Processing FX

Buy Now$49.00 USD or more

Leave a comment

Log in with itch.io to leave a comment.