-
Notifications
You must be signed in to change notification settings - Fork 0
Changelog
Ryan Sweeney edited this page Feb 2, 2025
·
73 revisions
Future Development
- Investigate supportability for 5.0, 5.1
- Test for all platforms.
- Make FREE plugin - Tool to take in a bitmask (black and white texture) and output a distance field texture.
- Make FREE plugin - Game thread ran compute shader that can take in an array of values to generate a distance field for non-texture use cases.
- Investigate an optional pass that will upscale the downsampled JFA and perform a JFA pass at the same time - this looks like it would take some reworking and a few extra passes
- Investigate potential optimisation for simple outlines that extract all outlines in a single pass for bitmask stencils
- Investigate adding the ability to add user custom shader (code-based) for the material outline rendering for the AA pass
- Investigate a way to add alternative AA methods by the user (post-process AA types like FXAA, MLAA, SMAA etc.)
1.3 - Major Update - In Development
- TODO: Implement FHA method of generating DFs - up to 2x (was 4x but with lots of errors) faster but has significant errors (look at error correction at cost of performance)
- TODO: Add ability option to "subtract" from outline or stencil based on depth
- TODO: Investigate custom editor window, includes DF preview, outline material preview, stencil preview, group stencils preview etc., ability to adjust config there (can see what it does directly), ability to save rendered DF to a texture asset or PNG, ability to preview from viewport (view from camera in level instead of viewport) and some performance metrics like how long it takes for the entire DF pass in microseconds
- TODO: Move documentation to GitBooks
- TODO: Add more example materials
- TODO: Add messages if certain settings aren't set ie: Custom Stencil with Depth
- TODO: Add ability to render using a custom shader (C++ & HLSL) and directly render the outline to the post-process texture (/w AA if enabled)
- TODO: Modify CMAA2 to adjust the UV seed to "smooth" the edges for use in the JFA passes
- TODO: Refactor existing parts to make things easier to maintain
- INVESTIGATE: an option for filter on the depth/stencil buffer that will extract internal edges caused by significant differences in depth - edge detection on depth buffer within stencil
- INVESTIGATE: the ability to directly render to the post-process passes to reduce the overall number of passes and optionally remove the need to update render-target assets
- INVESTIGATE: the merging of the AA edge detection phase with the outline edge detection phase to reduce the number of passes required (for simple outline only situations)
1.2.4 - Patch - Released
- Fixed issue with material expression causing a crash
- Fixed issue with stencil being blocked by process mask on non-check or non-half JFA modes
- No longer runs the DF passes for viewports like editor previews
- Improved memory usage of the Active Stencil Check with bit-packing (very minor speed improvement)
- Implemented anti-aliasing pass for a material - you use the material to render your outlines - then use the result in your post-process materials - CMAA2 is the AA algorithm used - https://www.intel.com/content/www/us/en/developer/articles/technical/conservative-morphological-anti-aliasing-20.html
- Updated PixelDistanceMaterialExpression to allow the choice between constant pixel distance or a relative screen percentage distance
- Added material node for easier access to anti-aliased outline material
- Added support for UE5.5
1.2.3 - Patch - Released
- Fixed issue with process mask not working properly with checkJFA - I done goofed, I think what I ended up doing was adding a change to the wrong shader function, the check and half JFA methods should've been fine with the process mask...
- Fixed issue causing the render target source to fail validation, meaning it wouldn't go through the distance field passes
- Added option to DFO custom material expression to have a 1px offset when choosing outside/inside only
- Changed shaders to include the entire stencil regardless of process mask
1.2.2 - Patch - Released
- Fixed issue with process mask not working properly with halfJFA
- Optimised checkerboard JFA pass
- Improved Active Stencil Check reliability
1.2.1 - Patch - Released
- Fixed issue caused by test compute shader when packaging game.
- Warning for No Distance Field Resource present will only show once in the log rather than every frame - to avoid spamming.
- Forgot to update the text shown in the plugin's settings, updating.
- Added better error checking in blueprint function library
1.2 - Released
- Added automatic toggling of render passes based on the stencil values existing in the frame - Active Stencil Check
- Added checkerboard rendering as an optimisation method (works similar to Half JFA but less aggressive) - improves performance at the cost of accuracy
- Added process mask to distance field output texture to help improve the performance of post-process materials
- Always creates an outline (smallest level of process mask) process mask, this improves performance on all simple outlines and initial outline pass for the JFA
- Refactored the process mask creation to improve maintainability
- Added option to scale the render target down to 1% of the base resolution - improves performance at the cost of quality
- Added option to specify a group of stencils that can be merged for a single distance field outline
- Supports UE 5.4
- Added option to use a render target instead of a stencil as a source
- Can now render every frame, at a targeted frame rate or completely on demand
- Improved example materials making them simpler
----- (POTENTIALLY) BREAKING CHANGES -----
- Changes to config settings include the name along with more values - Fix: Recreate settings
- Removed Single In, Single Out and Double. Replaced with Simple. To get Single In, Out or Double use OutlineSide on the Distance Field Material node. - Fix: Recreate material node
- Changed DistanceFieldSide in the Distance Field Material node to OutlineSide. May cause errors. - Fix: Recreate material node
----- INVESTIGATE -----
- If there are any issues with motion blur and the motion vector buffer - Ghosting caused by TAA
----- EXPERIMENTING -----
- Preprocess the depth for the stencil with an edge detection kernel so that any internal lines may be found - would require new passes
1.1 - Released
- Added optimisations, Max Process Distance & Half JFA
- Added more BP functions to change the settings from the game thread
1.0
- Initial release-ready product