PopcornFX v2.14 is released!

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