Post-Processing FX v4.0 (BETA!)


Welcome to the biggest update of the year: Post-Processing FX v4.0!

This is a beta version, so feel free to give me any feedback you'd like. I intend to release it when I do more tests and fix some things.


Check the Release Notes:

[ADDED] New powerful and versatile stacking system made from scratch. It consumes less memory, is more compact and efficient. With it, you can now reorder effects and easily add your OWN effects to the Stack!
This new system also avoids creating any additional surfaces if not in use
[ADDED] New powerful and responsive debug UI inspector! It is now possible to easily edit the effects in any room, in real time. There are also some other cool features
[ADDED] New powerful LUT generator module. Easily generate neutral LUTs! Strip, Grid, Hald Grid and Curve
[ADDED] Strip LUTs support
[ADDED] Hald Grid LUTs support
[ADDED] .cube file support. Now you can import .cube LUT files from famous softwares, like Photoshop and DaVinci Resolve (experimental!)
[ADDED] A "Modules" folder has been created, which contains optional features that can be deleted if you don't use them
[ADDED] New Gaussian Blur effect. This one has more performance and better gaussian function
[ADDED] New Dithering effect with 4 different modes and more options!
[ADDED] New effect: Color Curves, with support for YRGB and HHSL. Useful for precise color grading. Palettes are also supported and some more awesome stuff
[ADDED] New effect: Channel Mixer (allows you to take the red, green, and blue channels and boost or pull back the levels of each one)
[ADDED] PPFX_Curve() class. Through it, it is possible to generate YRGB and HHSL curves, which will serve for the Color Curves effect (for color grading)
[ADDED] Warning debug messages if you try to set a parameter of an unloaded effect. This also applies to other methods related to effects
[ADDED] .SetEffectOrder() and .GetEffectOrder() to PPFX_System() class
[ADDED] YRGB animation curve to Assets folder
[ADDED] HHSL animation curve to Assets folder
[ADDED] PP_BLOOM_DIRT_CAN_DISTORT parameter to Bloom effect. Which means the dirt lens can now distort with the Lens Distortion effect if desired
[ADDED] PP_TEXTURE_OVERLAY_BLENDMODE parameter to Texture Overlay! Blendmodes are now supported (Normal, Add, Subtract and Color Burn)
[ADDED] PP_NOISEGRAIN_NOISE_SIZE parameter to Noise Grain effect
[ADDED] PP_PALETTE_SWAP_SMOOTHNESS parameter to Palette Swap effect. Lets you set the level of smoothness applied to the threshold. Changed parameter order, revise your code!
[ADDED] PP_CINEMA_BARS_INTENSITY parameter to Cinema Bars effect. It is now possible to set the opacity. Changed parameter order, revise your code!
[ADDED] PP_SCANLINES_SHARPNESS parameter to ScanLines effect. It is now possible to set the sharpness. Changed parameter order, revise your code!
[ADDED] PP_SLOW_MOTION_SOURCE_OFFSET parameter to Slow Motion effect. This option lets you define an source stack (to emit light from)
[ADDED] PP_SUNSHAFTS_SOURCE_OFFSET parameter to Sunshafts effect. This option lets you define an source stack (to emit light from)
[ADDED] When loading a profile, it now shows how many effects were loaded (if enabled)
[ADDED] Black and White spectral LUT
[ADDED] Feather: additional documentation
[FIXED] Post-processing now detects input surface resolution changes automatically, cleaning the system
[FIXED] Improved Depth of Field effect. Blurring is now displayed correctly when using depth buffer
[FIXED] Depth of Field effect now scales correctly when downscaling via the downscale parameter
[FIXED] Improved .Stringify() from PPFX_Profile. Now the colors use the standard color codes, and among others
[FIXED] Chromatic Aberration shader now correctly calculates colors when using blur and custom spectral/prism LUTs
[FIXED] Chromatic Aberration shader now maintains spectrum size even at different resolutions
[FIXED] Chromatic Aberration shader optimized (especially when using blur mode)
[FIXED] VHS shader was creating lots of random black dots when activating Chromatic Aberration effect
[FIXED] Slow Motion effect now behaves better while with threshold 0
[FIXED] White Balance shader now works correctly while using the LUT effect (no burst colors)
[FIXED] Depth of Field effect optimized (CPU-side), reduced the use of 1 surface
[FIXED] Vignette effect optimized (GPU-side)
[FIXED] Invert Colors effect optimized (GPU-side)
[FIXED] Lift Gamma Gain effect optimized (GPU-side)
[FIXED] Fade effect optimized (GPU-side)
[FIXED] Hue Shift effect optimized (GPU-side)
[FIXED] Posterization effect optimized (GPU-side)
[FIXED] Lens Distortion effect optimized (GPU-side)
[FIXED] Pixelize effect optimized (GPU-side)
[FIXED] Swirl effect optimized (GPU-side)
[FIXED] SineWave effect optimized (GPU-side)
[FIXED] Glitch effect optimized (GPU-side)
[FIXED] Dithering effect optimized (GPU-side)
[FIXED] Noise Grain effect optimized (GPU-side)
[FIXED] .GetStackSurface() method from PPFX_System() optimized
[FIXED] LUT shader has been changed and now correctly supports most LUT types for color grading
[FIXED] LUT had a margin of error in correcting the red and green color, now it has been fixed
[FIXED] .ProfileLoad() from PPFX_System() now clears effects from memory automatically, before loading a new profile, optimizing the game
[FIXED] .ProfileUnload() from PPFX_System() now cleans effects before removing them, preventing memory leak
[FIXED] Improved .Destroy() method from PPFX_System()
[FIXED] (Mac) Gaussian Blur was not working on some Mac devices (M2 mini and M1)
[FIXED] (Example) When exiting the 3D world, mipmapping was still active, causing the LUT effect to become corrupted
[FIXED] (HTML5) Fixed a bug where changing the render resolution quickly caused severe visual glitches
[FIXED] .DrawInFullscreen() from PPFX_System() was not throwing an error if trying to draw on an inappropriate event
[FIXED] Improved error exception message
[FIXED] In Speedlines effect, speed was affecting rot speed
[FIXED] Speedlines shader, rotating was not rotating correctly based on center
[FIXED] Improved Contrast shader (now uses standard ACES)
[FIXED] Micro optimization in Kawase Blur effect
[FIXED] Profile Stringify: Scanlines effect with duplicated "contrast" parameter
[FIXED] Profile Stringify: Missing parameters of Slow Motion effect
[FIXED] Layer Renderer now correctly applies camera matrix (a user was reporting upside-down bug)
[FIXED] White Balance effect now prevents too high values from blowing out colors
[FIXED] White Balance shader optimized
[FIXED] Palette Swap shader optimized (removed branching)
[FIXED] Palette Swap shader now correctly gets palette row
[FIXED] Palette Swap shader now uses a more efficient method of getting palette luminance
[FIXED] ScanLines effect intensity no longer bursts colors
[FIXED] .DisableAllEffects() was not working in HTML5
[FIXED] Small fixes in internal code
[CHANGED] Profiles are now faster and consume less memory than before
[CHANGED] Depth of Field effect now shows a red color for the focus area in debug mode
[CHANGED] Texture Overlay effect now has it's own stack, which means it's now possible to use several on the same post-processing stack, useful for adding pre-existing surfaces for rendering
[CHANGED] .SetEffectEnable() from PPFX_System() now automatically clears the effect if it is being disabled
[CHANGED] ppfx_debug_draw(). This function is now inside the PPFX_DebugUI()
[CHANGED] Temperature range from Color Balance is now from -1 to 1, instead of -1.67 and 1.67, for better standard
[CHANGED] If you use .SetEffectEnable() from PPFX_System() and the effect does not exist in PPFX_System() instance, a console message is displayed instead of a error exception
[CHANGED] The way how FX_LUT() works: Now it is possible to choose the type: 2D, 3D and Hald. The order of parameters changed a little. Revise your code!!
[CHANGED] PP_BLUR_KAWASE_DOWNSCALE now goes from 0 to 1, like other downscaled effects. This change was for internal performance purposes. Revise your code.
[CHANGED] PP_DITHERING_STRENGTH is now PP_DITHERING_INTENSITY
[CHANGED] PP_DISPLACEMAP_ZOOM is now PP_DISPLACEMAP_SCALE, for better comprehension
[CHANGED] PP_CINEMA_BARS_IS_FIXED is now PP_CINEMA_BARS_CAN_DISTORT, for better comprehension. Note that true becomes false and vice versa
[CHANGED] PP_TEXTURE_OVERLAY_IS_FIXED is now PP_TEXTURE_OVERLAY_CAN_DISTORT, for better comprehension. Note that true becomes false and vice versa
[CHANGED] Systems in general now do not depend on global variables while running each step, which makes it more efficient
[CHANGED] Renamed default sprite asset "__spr_ppf_lut3d_default" to "__spr_ppf_lut_grid_default"
[CHANGED] Vignette Shader in linear mode now works similarly to non-linear mode, as it should be
[CHANGED] Border effect now only exists on the final stack, which prevents some color blending issues
[CHANGED] Lift Gamma Gain effect is now after Shadow Midtones Hightlights, for better color adjustments
[CHANGED] screen_width and screen_height parameters from PPFX_System().Draw are new surface_width and surface_height, for better coherence
[CHANGED] All Spectral/Prism LUTs (for Chromatic Aberration) are now 3x1 sized, making them easier to use and create
[REMOVED] Legacy JSDocs information about profiles in the .ProfileLoad() function of PPFX_System() class
[REMOVED] .SkipStacks() from PPFX_System(). The new stack system allows automatic optimization when stacks are not in use, avoiding creating additional surfaces
[REMOVED] Some unused files from the asset folder

Developing this project has been a lot of work and time consuming, as I'm active on it almost daily. So if you think it's worth it and can support the development, I kindly request it through my Ko-fi: https://ko-fi.com/foxyofjungle

I am kindly grateful for that. Thank you for your attention, have a great day :)

Files

PostProcessingFX_v4.0_BETA.yyz 49 MB
Aug 14, 2023
PostProcessingFX_v4.0_BETA_1.1.yyz 49 MB
Aug 14, 2023

Get Post-Processing FX

Buy Now$49.00 USD or more

Leave a comment

Log in with itch.io to leave a comment.