Changelog

The current version available is 1.3.2

  • ✴️ ONGOING PROGRESS: Move documentation to GitBooks

chevron-rightIdeashashtag
  • 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 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 an option to consider depth for bitmask stencils - this will output a partial distance field if object is partially blocked by a non-stencil object

  • 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.)

  • Investigate a way to use AA to adjust the UV seed to "smooth" the edges for use in the JFA passes

  • 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)

  • Investigate if possible to add debug views for distance field outline, simple outline, all available process mask levels, outline material and anti-aliased outline

  • Add 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 if it's possible to generate outlines that change with world depth

  • Continue research that was done

chevron-right1.6.0 - Ideashashtag
  • Additional image filter - Sobel - Applies the Sobel kernel

    • Can optionally add the following:

      • Blurring pass

      • Non-maximum Suppression

      • INVESTIGATE: efficient Edge Tracking for Canny Edge detection

  • Transparency on scene view - need to find a way to access translucency outside of post-process materials

    • Applies to Stencil, None

chevron-right1.5.0 - Ideashashtag
  • Add outline settings creation wizard to make the process of creating outlines easier

chevron-right1.4.0 - Ideashashtag
  • Add settings editor window which will allow users easily adjust their outlines settings and get immediate feedback on what happens

  • Add ability to set up settings for example content

  • Include example level from the demo or at least include content such as the painting example

  • Provide some information on the current batching setup as it's not clear if the batching is actually occurring as specific settings need to be the same for outlines to be batched

  • INVESTIGATE: Using custom asset type for outline creation with an in world actor to dictate global outline activity similar to post-process volumes

    • This will include better editor functionality

    • Will include the option to convert existing ini settings to assets for several update versions

chevron-right1.3.3 - In Progresshashtag
circle-exclamation
  • TODO: Add new source - Scene

    • This is for use with edge detection applied to the full screen

    • Detection based on a combination scene view, scene depth and world normal

  • TODO: Image Filters - Apply image filters onto the scene to extract outline data

    • Simple - Basic edge detection

    • Uses an adjustable combination of:

      • Scene colour

        • Applies to Render target, Stencil, Scene

      • Scene depth

        • Applies to Stencil, Scene

      • World normal

        • Applies to Stencil, Scene

      • Specular

        • Applies to Stencil, Scene

  • TODO: Add blueprint node to make it easier to get an outline name without having to go into settings

  • TODO: Add parameter version of the outline output nodes

  • TODO: Investigate making the distance field "smaller" or "larger" depending on depth

    • This could allow for smaller outlines at a distance

  • TODO: Add depth mask for scene based outline generation

    • Limits the distance outlines get created

  • TODO: Depth modulation for simple scene based outline generation

  • TODO: Thickness option for simple outlines

    • Will look fine for small values but for larger values should use distance fields

  • TODO: Initial implement of new Jump Flood Algorithm based on the research carried out

  • FIXED: Issue with render target sourced distance fields/simple outlines

chevron-right1.3.2hashtag
chevron-right1.3.1hashtag
chevron-right1.3hashtag
  • Added ability to name resource

  • Added ability to specify where resources get saved to (all resources, not individually)

  • Added option to subtract or invert from the stencil/outline based on depth - depth occlusion

  • Added buttons in the settings to make accessing resources easier

  • Added button that creates an antialiasing pass material template

  • Refactor of asset management should fix reported issue #4arrow-up-right

  • Batching multiple simple and distance field outlines together, greatly improving performance for multiple outlines

  • Some Pixels shaders have been replaced with with Compute where performance was improved

  • Refactored existing parts to make things easier to maintain

  • Added a warning in the settings if stencil settings are incorrect

  • Added 5.6 Support

  • Added new occlusion output to Distance Field Material Expression node

    • The occlusion value is stored in the alpha channel of the underlying render target

  • Added new material node that gets the antialiased outline output

    • Can still access the outline via render target asset

  • Added options to inject the antialised output directly into the scene view colour without a post-process material pass

  • Refactored the settings

  • Changed available options for distance fields

    • Unadded FHA as it had too many errors and later improvements in JFA performance with scaling made it redundant

    • Removed checkerboard and half JFA methods for the same reason as FHA

    • Will continue to investigate JFA performance improvements

  • Any missing/deleted resource can be recreated on restarting UE or by globally disabling and re-enabling the plugin in the plugin settings (where you add all the outline settings)

  • Active stencil check has been removed, the renderer provides this information before rendering so it was redundant

  • Refactored the associated blueprint library, most options should be static

    • Better to have multiple outlines for different states and enable/disable the outlines individually

  • Added start-up dialog on initial start or updates with things like changelog information

  • Moved refresh button into the main toolbar

  • Added global scale option that scales all of the stencil based outlines

    • Individual outlines can be scaled further however it's multiplicative

  • Added the ability to output the occlusion to a render target to access in materials

  • Added more material nodes to make material creation easier

  • Improved example outline material

circle-exclamation

IMPORTANT

chevron-right1.2.4hashtag
  • 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.htmlarrow-up-right

  • 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

chevron-right1.2.3hashtag
  • 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

chevron-right1.2.2hashtag
  • Fixed issue with process mask not working properly with halfJFA

  • Optimised checkerboard JFA pass

  • Improved Active Stencil Check reliability

chevron-right1.2.1hashtag
  • 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

chevron-right1.2hashtag
  • 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

chevron-right1.1hashtag
  • Added optimisations, Max Process Distance & Half JFA

  • Added more BP functions to change the settings from the game thread

chevron-right1.0hashtag
  • Initial release-ready product

Last updated