PopcornFX v2.14 is released!

PopcornFX banner v2.14

The PopcornFX v2.14 build is now available!

Make sure you upgrade your runtime / plugins before switching to this version.
You can also check out the changelog on the wiki, where you’ll find all download links and updated patch nodes.

Note: UE4 & UE5 plugin archives are provided as 7z archives for better compression. They can be extracted using 7zip.




Check out the PopcornFX 2.14 release highlights livestream, where a few members of the dev team dive into some of the new features:

Changelog 2.14.5

Builds (Jan 05th 2023)

  • Fixed #12028: Two or more integer divisions by the same value in the same nodegraph cause the optimizer to incorrectly replace the result by zero.
  • Fixed #12034: CPU backend: during peephole optimization, allow combining integer mul and adds to integer madd (already done for fp madd)
  • Fixed #12037: Upgrader: v1->v2 upgrader fails upgrading some assets due to editor-only data not supported in v2
  • Fixed #12038: UnrealEngine: random deadlock when quitting a level containing GPU simulated particles and RHI is D3D12
  • Fixed #12022: O3DE: incorrect tangents in mesh resource handler
  • Fixed #11864: Unity: static mesh resource is broken when used in physics shape property


Changelog 2.14.4

Builds (Dec 15th 2022)

  • Fixed #11993: Showing the documentation from the editor (either through F1 on nodes, or through the script editor toolbar button) opens the web browser with an outdated documentation
  • Fixed #12002: Graphic-crash with multiple spatial-layers (GPU sim)
  • Fixed #11779: Editor: crash when changing mesh attribute sampler used by D3D12 GPU sim to Box/Cone/other primitive
  • Fixed #11997: Optimizer: combination of mul/add chains by constants on integer types cause saturation on overflow, lead to totally incorrect results.
  • Fixed #11996: Script editor: Modification indicator in breadcrumb sometimes does not refresh when applying changes
  • Fixed #11995: Script editor: Right-click menu is missing items, has no icons, and does not display shortcuts
  • Fixed #11994: Script editor: No way to apply changes without knowing the shortcut Ctrl+Enter. Add a context menu entry and toolbar button
  • Fixed #11976: O3DE: Async loading of meshes cause rendering errors
  • Fixed #4006: Unity: Lit materials for CPU billboarding
  • Fixed #9410: Unity: Merge SceneMeshBuilder inside Rendering plugin
  • Fixed #12007: Unity: Add Distortion support for URP
  • Fixed #12003: Unity: ‘Create Mesh Data’ output mesh in a wrong folder
  • Fixed #11983: Unity: update PopcornFX simulation after a specific ECS system.
  • Fixed #11979: Unity: texture atlases for meshes
  • Fixed #11977: Unity: Change ownership of customs materials to the asset and removed it from the material factory
  • Fixed #11998: Unity: Urp Lit materials bindings have wrong mandatory shader variation


Changelog 2.14.3

Builds (Dec 2nd 2022)

  • Fixed #11973: Content-browser: .pkma files that have been modified outside the project appear as always “loaded” in the content-browser when the project is opened the next time.
  • Fixed #11972: Editor: Secondary shortcuts are not saved and reset at editor launch
  • Fixed #11945: O3DE: Distortion not working
  • Fixed #11944: O3DE: Soft particles not working in premultiplied alpha
  • Fixed #11939: O3DE: Incorrect scale and rotate order in the billboarding
  • Fixed #11956: O3DE: header-only target Gem::PopcornFX.API
  • Fixed #11946: O3DE: Use dynamic pass injection for the distortion
  • Fixed #11941: Unity: Check if dll is loaded before pulling logs from cpp
  • Fixed #11937: Unity: Drop x32 support for Linux as Unity doesn’t support it anymore


Changelog 2.14.2

Builds (Nov 10th 2022)

  • Fixed #11882: Editor: GPU simulated meshes ignore the LOD pin
  • Fixed #11932: GPU sim D3D11: Using most of the ‘sim.xxx’ functions unexpectedly cause a fallback to CPU sim due to a shader compile error
  • Fixed #11929: ‘discretize’ node does not display proper range of output value
  • Fixed #11927: ‘discretize’ node & script function are broken on PS5 & ISPC backends, and on all platforms when the input value is a constant
  • Fixed #11916: UnrealEngine: AnimTrack attribute samplers (Spline components) are corrupting few bytes of memory
  • Fixed #11911: Unity: Mesh sampler are broken if the sampled mesh is used in rendering
  • Fixed #11910: Unity: MaterialFactory don’t show assigned customs materials
  • #11906: UnrealEngine: Add support for UE5.1


Changelog 2.14.1

Builds (Oct 20th 2022)

  • Fixed #11881: GPU simulated meshes do not support Texture Atlas
  • Fixed #11901: Atlas file thumbnails are not displayed in the property grid asset preview
  • Fixed #11887: GPU sim: transforms of shape sampler are not longer updated
  • Fixed #11886: GPU sim D3D12: random crashes when editing effect containing curves
  • Fixed #11874: GPU sim D3D12: Instabilities with effects with spatial layers
  • Fixed #11858: Add Github PopcornFX organization quick access link in the Help menu
  • Fixed #11885: Unity: Add helpers to get attributes types, name and range from the emitter component


Changelog 2.14.0

Builds (Oct 12th 2022)

Templates & Corelib

  • #11161: Skeletal Animation Texture material
  • #11839: Corelib: New node “Color Lerp” : does an interpolation between two colors, but in HSV space instead of RGB space
  • #11544: Add Restart and Reset pins to the Timer node
  • #11730: CurveOverTime template: Allow retreiving sampling cursor that was used for sampling as an output of the node
  • Fixed #11726: Trail node ignores explicit ‘Velocity’ input when using ‘Cubic Interp Position’ option, recomputes path tangents with dxdt node from position only.

Simulation & Rendering

  • #11539: Spatial-layers: allow direct queries to the spatial grid
  • #11398: GPU sim D3D12: Spatial layers performance improvements
  • #8398: Mesh renderer: Allow using texture atlases


  • Fixed #11413: User should not need to explicitly clear editor cache when opening a project with a more recent PopcornFX Editor version
  • #11526: Mesh viewer: Add a skeleton bone tree panel to visualize the bone hierarchy
  • #11523: Mesh importer: add builtin support for mesh LODs

Effect editor

  • #10229: Render opaque particles in a separate pass than the GBuffer pass, to avoid inter-particle collisions of GPU simulated particles colliding with the depth buffer
  • #10228: Dispatch GBuffer or render-target (texture attribute samplers) dependent command buffers after the GBuffer pass finished to avoid a 1-frame lag of sampled data
  • #8461: Background backdrop: Add Theta/Phi angle controls to rotate the background cubemap & gradient
  • Fixed #11846: Renderer properties are displayed in an incorrect order
  • Fixed #11844: Nodegraph: Power-of-two warning on textures is emitted on any texture resource node even if they are only used in renderers, where it is mostly OK. Should only be emitted when used for in-graph sampling
  • Fixed #11843: Nodegraph: Some textures on renderer nodes cannot be exposed to the graph
  • Fixed #11333: Node creation dialog: Typing an hexadecimal value starting with ‘0x…’ suggests to create a float node as the top suggestion, should suggest an int node

Nodal editor

  • #11396: Node creation dialog: Allow typing “.xyz” to create a permute/swizzle/shuffle node and convert RGBA to RGB or XYZW vectors to XYZ. Allow typing any swizzle code.
  • #3281: Implement missing constructs of data-nodes-in-layergraph
  • Fixed #4896: Template inputs are 0 instead of pin value
  • Fixed #3369: Putting an event multiplier in a template and setting its properties with computations involving template inputs doesn’t work
  • Fixed #8883: Renderer properties auto-export: conflict between names produces warnings and does not work

Compiler & Optimizer

  • #11757: Optimizer: Replace multiple divisions that have identical divisors by an rcp(divisor) + mul instructions
  • #11372: Nodegraph, IR, & Backends: add SLR node & instruction (logical right-shift)
  • #11371: Add a reverse-bits builtin to the nodegraph to optimize decimation effects that require doing bit interleaving by hand
  • #11148: GPU layer compilation: add an option to keep generated sources for easier troubleshooting (devs)

Plugins & Third-Party

UnrealEngine plugin

  • #11163: UnrealEngine: implement skeletal animation texture
  • #11740: UnrealEngine: Per particle LOD support for Static & Skeletal mesh particles
  • Fixed #7717: UE4: Mesh particles do not support ShaderInput3, ShaderInput2 and EmissiveColor

Unity plugin

  • #11162: Unity: implement skeletal animation textures
  • #11787: Unity: Implement level of details for mesh renderers

After-effects plugin

  • Fixed #11815: AE: PopcornFX Panel doesn’t show its content.


  • v2.14.0.14121: Timer node: Replace ‘Stop’ by ‘Pause’, and add new ‘Stop’ control that also resets the timer

Content examples update

New “Tutorials” effects

New Marketplace packages (Paid license)

New Marketplace packages (Free)