PopcornFX v2.17 is released!

PopcornFX banner v2.17

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


Changelog 2.17.5

Builds (Sep 28th 2023)

  • Fixed #12895: Unity: Wrong camera count if there is no emitter in the scene on load
  • Fixed #12892: Unity: missing meta file for PKFxAudioPool.cs causing issue when adding the package using git url
  • All v2.15.14 LTS fixes:
  • Fixed #12667: GPU sim D3D11: Random corruptions of particle data at spawn when first opening an effect
  • Fixed #12870: Crash when disabling or deleting nodes that are inside a circular-dependent graph
  • Fixed #12866: Editor-Mac: cannot import any package
  • Fixed #12838: Nodegraph: creating an Output node from a EventAppendPayload output link does not automatically set the node’s ExportedType to ‘Event’
  • Fixed #12916: UnrealEngine: Cooking fails with some effects in UE5.3
  • Fixed #12909: UnrealEngine: Ribbons segments incorrectly retrieve per particle values (diffuse color, emissive color, alpha remap cursor, ..)
  • Fixed #12899: UnrealEngine: GPU sim broken on some AMD graphics cards, leading to graphics card crashes
  • Fixed #12875: UnrealEngine: Plugin does not compile when project’s IncludeOrderVersion is set to a specific unreal version (i.e. EngineIncludeOrderVersion.Unreal5_3)
  • Fixed #12924: Unity: Invalid geometry generated for billboards in debug
  • Fixed #12923: Unity: Crash with stored buffer size in the PKFXSettings
  • Fixed #12871: Unity: Optimize Vulkan render api data.
  • Fixed #12921: O3DE: AssetBaker compilation error in release
  • Fixed #12891: O3DE: crash when using broadcast node
  • Fixed #12890: O3DE: Incorrect resource mesh path on bake


Changelog 2.17.4

Builds (Aug 31st 2023)

  • Fixed #12852: GPU Texture density sampler: Density textures specified through a property in the propertygrid, without a texture node, do not work in the GPU sim
  • Fixed #12773: Effect editor: Big memory leak in D3D12 with skeletal mesh backdrops when seeking in the effect timeline
  • Fixed #12753: Nodal editor: Crash on Ctrl+G when the final template has more outputs than inputs (since v2.17.1)
  • Fixed #12828: Nodal editor: Using the 0?1 search syntax to create a rand node does not work with multi-dimensional vectors, for example: 0,0,0 ? 1,1,1 does not work
  • Fixed #12357: Editor-Mac: cannot import any package
  • Fixed #12829: Unity: Diffuse ramp show compression artefacts on URP
  • Fixed #12427: Unity: Add auto detect of render pipeline to create the right factory
  • All v2.15.13 LTS fixes:
    • Fixed #12791: GPU sim D3D12: using sim.wave.or() and sim.wave.and() breaks shader compilation
    • Fixed #12800: UnrealEngine: UE5.3 support
    • Fixed #12798: UnrealEngine: Drop support for Armv7 (32bit) on UE4.27
    • Fixed #12824: UnrealEngine: Update plugin icons to better match UE5 UI style
    • Fixed #12856: UnrealEngine: Mesh materials aren’t two sided by default
    • Fixed #12855: UnrealEngine: AlphaRemap does not work with mesh particles
    • Fixed #12854: UnrealEngine: AlphaBlended meshes default to an Additive material once imported
    • Fixed #12780: Unity: ResetAndUnloadAllEffects should clear loaded dependencies
    • Fixed #12779: Unity: optimize matching dependencies in resources load
    • Fixed #12769: Unity: Use SetVertexBufferParams and SetIndexBufferParams to create the mesh buffers
    • Fixed #12844: O3DE: PK_RETAIL not defined for release builds on platforms other than linux
    • Fixed #12823: O3DE: RendererLoader does not keeps a reference for model assets
    • Fixed #12799: O3DE: Gem fails compilation in release configuration on Linux
    • Fixed #12771: O3DE: Failed to get model asset for mesh renderers
  • All v2.15.12 LTS fixes since v2.17.3:
    • Fixed #12749: GPU sim D3D: sim.wave.id fails to compile in GPU sim shaders
    • Fixed #12763: Template icon picker in the propertygrid does not list some icons
    • #12333: Unity: Performance analysis, Add C# markers
    • Fixed #12758: Unity: Crash on resize buffer on PS4


Changelog 2.17.3

Builds (Jul 27th 2023)

  • Fixed #12727: GPU sim: Layers that do not use any parent payload do not properly apply effect instance transforms, particles ignore the xform nodes and appear at world origin
  • Fixed #12735: GPU sim D3D11: Crash when sampled mesh cannot be loaded
  • Fixed #12689: GPU sim: undefined behavior when layer generate allocations higher than 4Gib
  • Fixed #12711: Baking effects with the keep-sources & inline all dependencies options does not remove the ‘Public’ flag of templates it inlines
  • All v2.15.12 LTS fixes:
    • Fixed #12734: Runtime: cpu detection not working on macos arm64
    • Fixed #12729: Editor crashes when deleting a node if its IR instruction is selected
    • Fixed #8397: Editor: Incorrect translation of renderer features
    • Fixed #12746: UnrealEngine: ribbon segments incorrectly apply particle diffuse colors, emissive colors..
    • Fixed #12739: Unity: UnityPluginLoad is not called on windows x32
    • Fixed #12736: Unity: undefined symbols if building for iOS
    • Fixed #12733: Unity: Mac silicon support
    • Fixed #12713: Unity: DllNotFoundException on linux
    • Fixed #12707: O3DE: Uninitialized local variable warning as error in track view attributes


Changelog 2.17.2

Builds (Jul 13th 2023)

  • Fixed #12679: Unity: Missing renderers in effects with light renderers
  • Fixed #12678: Unity: Binding of normal map fails during import
  • Fixed #12447: Unity: Add Sound/Light/Decal renderers infos to PKFxAssetEffect Inspector
  • All new v2.16.6 & v2.15.11 LTS fixes since v2.17.1:
    • Fixed #5233: Spatial layer : graph build error when exporting spatial layer pin in the layergraph
    • Fixed #12640: Node Script: Closing a scope without the semicolon termination token compiles fine and produces undefined behavior
    • Fixed #12139: Output event of a layer is broken when multiple event nodes are wired into it and one of them is disabled and has a passthroug node along the wire. Also displays incorrect warning.
    • Fixed #11884: Data nodes in layergraph: Changing properties in the layergraph require to manuall hit the ‘recompile’ button to see the changes
    • Fixed #12690: Attribute / Effect interface panel: Cannot roll-up categories, annoying when there are large attribute lists
    • Fixed #12677: Nodal editor: When creating an input node from a renderer pin, incorrectly auto-names the new input with the category prefix. Ex: “General.Size”
    • Fixed #12193: Nodal editor: deadlock when deleting some dangling passthrough nodes
    • Fixed #12270: Node creation dialog: Cannot set focus back to search box with keyboard once ‘down’ arrow has been pressed at least once to select an item in the list
    • Fixed #8847: Color picker: Picking a screen color is bugged on high-dpi screen setups, does not pick the correct colors on secondary screens that are on the left of the primary screen
    • Fixed #12680: Color picker: When picking screen color and moving back and forth between screens in a multi-screen setup, sometimes big black and white squares appear and follow the cursor, obstructing the things underneath
    • Fixed #12672: Color-picker: in attribute panel incorrectly interprets the colors as sRGB when in fact they are linear, mismatches the color displayed in the propertygrid and in the viewport.
    • Fixed #5232: Layergraph : changing a datacurve link in a layer input pin, doesn’t trigger a graph rebuild
    • Fixed #5924: XForm node emits warning when the layer is triggered from two different events, and one of them adds a ‘Position’ or ‘Orientation’ payload, but not the other.
    • Fixed #12682: Sometimes invalid effects are written, with null pins or connected pins in some objects
    • Fixed #12674: Users tied to an organization without any seat assigned see a ‘license expired’ popup when logging in
    • Fixed #12114: Mesh viewer: importing animations/skeleton in a mesh doesn’t refresh the viewport


Changelog 2.17.1

Builds (Jul 6th 2023)

  • Fixed #12664: GPU simulation cache used by editor is never reused when the effect editor is reopened on the same effect: Every time everything gets recompiled.
  • Fixed #12663: GPU simulation fails to compile after cache is cleared while effect editor is running, requires closing and reopening the effect editor window
  • Fixed #12614: GPU sim: particles randomly extract invalid payloads when more than 256 particles are spawned in a frame
  • Fixed #12606: GPU Sim: shape misc functions don’t behave like expected for ellipsoid and capsules
  • #12625: Editor: Add a ‘Cache Information’ submenu in the ‘Edit > Cache’ menu, that displays more information on the status of the different caches and how much space they take
  • Fixed #12644: Unity: Standalone build don’t compile
  • #12496: Unity: Add emitter visibility support
  • #12495: Unity: Add per emitter timescale support
  • All v2.16.6 fixes:
    • Fixed #12617: GPU sim D3D11: mesh sampling is broken when the mesh resource is specified through an inline property instead of through a resource node
    • Fixed #12605: Crash when sampling mesh with and without pcoords
    • Fixed #12630: Nodal editor: Sim location coloring is not displayed correctly in some effects
    • Fixed #12518: Using the debugger in a layer that has both CPU and GPU particles causes all subsequent layer compiles to stall the main thread waiting for sim shaders to be compiled
    • #12542: Unity: Add errors on PKFxAsset Inspector if effect contains differents quality levels than the current one
    • Fixed #12541: Unity: On Plugin import, sync Quality settings
    • Fixed #12587: AE: Crash occuring on project info file creation
    • Fixed #12586: AE: Reimporting effect reset transform and attributes
    • #12585: AE: improve render time for scenes containing multiple effects
    • Fixed #12580: AE: Crash on effect load
    • Fixed #12338: AE: Reimporting FX reset all parameters
  • All v2.15.11 LTS fixes:
    • Fixed #12660: Nodal Editor: Grouping nodes sometimes swaps the input and output names
    • Fixed #12296: Nodal Editor: Grouping nodes wired in renderer nodes generate verbose names (ie. ‘General.Size’)
    • Fixed #12608: GPU sim D3D12: particle runtime stats are not working anymore
    • Fixed #12658: CPU simulation: Modulo operator/node returns incorrect results for floating-point modulos with some period values when the simulation back size contains 8 particles or more
    • Fixed #12656: UnrealEngine: effects sampling mesh/skeletal mesh attribute samplers do not work if attribute sampler has ‘skinTangents’ enabled
    • Fixed #12602: UnrealEngine: FlipUVs & TextureUVs’ FlipU, FlipV, RotateTexture incorrectly handled
    • Fixed #12597: UnrealEngine: crash when opening/closing some levels
    • Fixed #12596: UnrealEngine: Ribbons CorrectDeformation feature causes particles to disappear
    • Fixed #12600: Unity: Incorrect camera culling mask when the distortion is disabled
    • Fixed #12592: Unity: texture missing from created material
    • Fixed #12666: O3DE: Asset processor fails on fga assets
    • Fixed #12659: O3DE: Wind sim interface is not working en editor mode
    • Fixed #12661: O3DE: errors on the asset processor even if the effect baked successfully
    • Fixed #12651: O3DE: Particles rendering is broken if an atlas failed to load
    • Fixed #12642: O3DE: pkat copy builder is not registered correctly
    • Fixed #12639: O3DE: AssetBuilder exits abnormally on a baking failure
    • Fixed #12612: O3DE: assert in CLightBatchDrawer::EmitDrawCall since range stream is not contiguous
    • Fixed #12634: O3DE: Linking error on linux in debug config (missing bfd)
    • Fixed #12635: O3DE: does not link with shipping libraries in release


Changelog 2.17.0

Builds (Jun 28th 2023)

Templates & Corelib

  • #12474: Physics node: add builtin support for extracting collision surface type
  • #12566: Event nodes: Allow specifying an orientation payload directly through an Orientation pin rather than having to override the builtin Orientation payload on the event wire that comes out of the template node
  • #12506: debug.drawBox helper: Add additional pins to allow drawing a box using its min and max corners
  • #12286: Add an input ‘Scale’ to some default templates: scene.dt, scene.time, effect.dt, effect.age, self.age
  • #12350: New ‘view.isVisible()’ helpers to test visibility of primitives against the camera frustum: point, sphere, bbox
  • Fixed #12029: Collision node: local space shape collision position and normal are not transformed back to worldspace
  • Fixed #12312: ‘rotate_aa’ node: can’t specify an inline value for the ‘Axis’ input
  • Fixed #12140: SimpleOnDeath and OnDeath nodes are incorrectly named (upgrade patches existing effects)
  • Fixed #12545: effect.age: Does not correctly take effect.timeScale into account, outputs realtime instead of scaled time
  • Fixed #12572: Corelib: ‘view.***’ helpers do not have the proper 3D_Coordinate & transform mode semantics on their input & outputs

Simulation & Rendering

  • #12492: SetLife node: Now listens to ‘effect.Stop()’ by default when stopping the effect in-engine and auto-kills particles whose life has been set to ‘infinity’ when their effect gets stopped. Add an option to the SetLife node to disable the default check if needed.
  • #12408: GPU sim: Add payloads support in spawn IR
  • #12483: GPU sim: Spatial layer sort improvements
  • #11181: GPU sim: Implement shape.contains/intersect*/project*/sampleDistanceField for primitives
  • #7069: GPU sim: add support for texture sample & remap density
  • #4755: GPU sim: spawn IR cannot be executed on GPU if layer contains XForm nodes
  • #2003: GPU sim: Implement shape project for non-mesh shapes
  • #12352: Root events: send ‘EmittedCount’ payloads from the timelines
  • Fixed #12454: Using GPU mesh attribute samplers only sample static data, cannot be used to sample skinned meshes (at least in-editor)
  • Fixed #12507: GPU sim: Trying to access the surface property of a mesh attribute sampler fails to compile and makes the sim fallback to CPU

Nodal editor

  • #12355: Add a way to get the bounding-box of a shape in the simulation graph
  • #6969: Add description tooltips on builtin nodes & pins
  • #12493: Autofit view to graph bounds when no specific graph location was captured for the current nodegraph
  • #12070: Debugger: Orientations should be displayed as easier to understand euler angles
  • Fixed #12629: Nodal editor: ‘SimLocation’ and ‘Performance’ view modes do not work when changing between layers and the simulation is paused.

Effect editor

  • #11859: Property grid: allow copy/pasting entire property values (ie. float3), using right-click on the property name
  • #11331: Better control over CPU-sim layer page sizes
  • #12414: Still run the simulation when the sim-speed slider is set to zero, but simulation is not in the ‘Paused’ state
  • #10214: Add a ‘Cancel’ button to the compilation progress dialog when opening an effect.

Editor (General)

  • #12532: Editor: allow saving / loading entire editor settings instead of individual categories only
  • #12511: User settings: Renamed confusing ‘ZoomExtents’ and ‘ResetExtents’ to the more explicit ‘FitView’ and ‘ResetView’
  • Fixed #12512: Editor user settings: Cannot override shortcuts that have the same name across different editor sections (Ex: “FitView” in the curve editor, nodal editor, viewports, etc..)
  • Fixed #12627: Content browser often does not save last viewed folder when restarting the editor

UnrealEngine plugin

  • #12609: UnrealEngine: Add GPU timings to profiler HUD

Unity plugin

  • #12497: Unity: Add teleport emitter support
  • #12494: Unity: Add Quaternion attribute support
  • #12390: Unity: Sound Renderers
  • #12449: Unity: Add “Import pkkg” command in “Assets/PopcornFX” menu

O3DE plugin

  • #12607: O3DE: Allow retrieving surface types of particle collisions