PopcornFX v2.16 is released!

2-16 Banner

The PopcornFX v2.16 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.16 release highlights livestream, where a few members of the team dive into some of the new features:


Changelog 2.16.3

Builds (May 11th 2023)

  • Fixed #12309: CastShadows does not work with the ‘LegacyLit’ feature
  • Fixed #12439: GPU Spatial Layers stop working after reseting the effect (D3D12 only)
  • Fixed #12397: Unity: Crash if PKfxEmitter is present in the scene without any PkfxRenderingPlugin
  • All v2.15.8 LTS Fixes:
  • Fixed #12459: Nodegraph: Using a debug.drawValue node makes the layer fall back to CPU sim
  • Fixed #12343: Mesh viewer: checkerboard texture isn’t applied when enabling the option in the viewport
  • Fixed #12342: Editor: debug.draw* persists when paused and resetting the sim.
  • Fixed #12465: Unity: High memory usage of PopcornFX shaders due to high permutation count
  • Fixed #12438: Unity: Add import .pkkg support
  • Fixed #12437: Unity: Fix Particle stats showing incoherent timings
  • Fixed #12457: O3DE: Plugin doesn’t work with the unified launcher
  • Fixed #12456: O3DE: Asserts at shutdown


Changelog 2.16.2

Builds (Apr 27th 2023)

  • All v2.15.7 LTS Fixes:
  • Fixed #12412: Incorrect value-ranges computed from ‘extract payload’ nodes when layer is triggered from different parent layers and one of them doesn’t append the extracted payload
  • Fixed #12418: F1 on renderer nodes opens a 404 page instead of opening the proper documentation page
  • Fixed #12417: F1 to show the documentation of local templates does not jump to the proper location in the documentation page, only works for public templates
  • Fixed #12433: Unity: IndexOutOfRange when registering a camera without enough layer mask set
  • Fixed #12432: Unity: thumbnails import could not be disabled


Changelog 2.16.1

Builds (Apr 13th 2023)

  • All v2.15.6 LTS fixes
  • Fixed #12274: Opening an effect that contains spatial layers tags it as modified even when no changes are made
  • Fixed #12324: Editor: several tooltips displayed when hovering nodes ‘info-circle’
  • Fixed #12372: Unity: Light renderers are left active on scene change
  • Fixed #12371: Unity: Light pools are duplicated on scene change


Changelog 2.16.0

Builds (Apr 4th 2023)

Templates & Corelib

  • #12156: New ‘EventBlocker’ node, allows to conditionally block events in the layergraph
  • #12320: Corelib: Add a ‘Luminance’ node that takes a color and outputs the grayscale luminance
  • #12314: Corelib: Add more keywords to quickly find transform nodes: l2w, w2l, lp2w, ld2w, v2w, w2v, etc…
  • #12156: Event templates: add an ‘Enabled’ pin to all event templates
  • Fixed #12279: Collision node: CollisionPosition and CollisionNormal outputs are undefined in the frames where no collision occured, cause hard to understand bugs in user graphs when the value is read and used when no collision happened
  • Fixed #12301: Templates: debug.drawBox inputs aren’t axis system independent
  • Fixed #12297: Corelib: Placement templates do not have proper descriptions

Simulation & Rendering

  • #12179: Editor: Enable D3D11 GPU simulation by default
  • #12132: Renderers: Rename obscure “FeatureSetPath” property to “Material”
  • #12285: Rendering: Culling rendering feature for mesh particles materials
  • Fixed #11922: GPU sim: Turbulence sampler ignores ‘FlowFactor’ and ‘DivergenceFactor’ properties.
  • Fixed #7481: Ribbon tangents are incorrect with custom U or UV flip / rotate
  • Fixed #12346: sim.lodQueryPoint & sim.lodQueryBox: Incorrectly returns values outside the [0,1] range when an LOD bias is applied throught the scene or the view.
  • Fixed #7210: Ribbon GPU: Flip UV / rotate not working with custom U

Editor (General)

  • #12108: Remove ‘Preferred Sim Location’ setting from project settings: Does not apply anymore.
  • #12201: Editor: new impostor creation tool
  • #2831: Editor rendering: Shadows
  • #12062: Details view & Asset data: Add an LOD column to show the number of LODs in mesh assets
  • #4180: Create tmp files when files are modified in-memory but not opened in an editor
  • #12227: JPG loader: Doesn’t support CMYK format: All JPG images saved from photoshop if source PSD is in CMYK format.

Effect editor

  • #12131: Warn when effects use a block-compressed texture whose size is not a multiple of the block size (not a multiple of 4 for all BC/DXT formats)
  • #12111: Frame exporter: add alpha to exported flipbooks
  • #12313: Color-picker: Add an angle snap on color-wheels when pressing a modifier key
  • Fixed #8182: Animtrack backdrop rotation values are sometimes wrong

Nodal editor

  • #11830: Add per-particle ‘debug.drawLine()’ : debugging primitives that can be used inside templates to display per-particle debug visualizations in-editor
  • #12165: Nodal editor: Allow toggling all nodes in an annotation by simply toggling the annotation itself rather than having to select every node inside
  • #12134: Editor node creation: Add more keywords for builtin “rand” nodes: “rand UV”, “rand 01”
  • #11395: Node creation dialog: Allow typing simple math operators like “+ 0.5” or “/ 2” that automatically set constant values in the math nodes
  • #12317: Nodegraph: Allow accessing internal particle properties ‘sim.selfId’, ‘sim.parentId’, and ‘sim.effectId’
  • Fixed #12190: Output value range for rand_seed function & RandFromSeed node is not properly computed, always [-inf, +inf]

Compiler & Optimizer

  • Fixed #12056: Crash during graph compilation when using spatial layers and the simulation is paused
  • Fixed #5188: dxdt node: Cannot analytically derive position anymore, due to more complex physics node
  • #12138: Compiler & Optimizer: Add a no_optimize builtin node & statement in scripts, allowing to disable optimizations along a data wire
  • #12133: Optimizer: Merge multiple ‘rand’ calls into a single rand call
  • Fixed #12327: Optimizer: Fails to properly simplify ‘select’ / ‘if’ chains when conditions are identical

Texture viewer

  • Fixed #12154: Image conversions: Total loss of floating-point precision when converting some image floating-point formats between each other, with the conversion going through an intermediate BGRA8 representation instead of staying in floating-point

Mesh viewer

  • #12260: Mesh viewer: BAT (Bone Animation Textures) export window UI / UX improvements

UnrealEngine plugin

  • #12226: UnrealEngine: Auto restart emitters when attributes are changed in the details panel

Unity plugin

  • #11837: Unity: asset per platform versions
  • #12344: Unity: Add Light renderer support
  • #12300: Unity: Thumbnails in editor and in-game if needed
  • #12237: Unity: Effects profiling (top offenders view)

Content examples update

Effects from various packages were modified to enable shadow casting to improve their look.

New “Tutorials” effects

New Marketplace package (Free)