PopcornFX v2.10 is released!

PopcornFX v2.10 banner

The PopcornFX v2.10 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 plugin archives are provided as 7z archives for better compression. They can be extracted using 7zip.




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


Changelog 2.10.7

Builds (Feb 3rd 2022)



  • All v2.9.18 & v2.9.19 LTS fixes
  • Fixed #9314: Editor: Package Library on lists v2.11 assets, cannot download any package
  • Fixed #9315: Editor sometimes corrupts newly added project paths, making the projects appear as “not found on disk”
  • Fixed #9205: Editor-Linux: builds are incompatible with Linux distributions where glibc is below 2.28


Changelog 2.10.6

Builds (Dec 16th 2021)




Changelog 2.10.5

Builds (Nov 18th 2021)




Changelog 2.10.4

Builds (oct 22nd 2021)



  • All 2.9.14 LTS fixes
  • Fixed #8818: Editor: .pkri editor window lacks basic UI features
  • Fixed #8817: Editor: renaming a rendering feature or a property in a .pkri editor and patching effects does not properly patch the feature’s PinRules


Changelog 2.10.3

Builds (oct 7th 2021)



  • All 2.9.13 LTS fixes
  • Fixed #8351: Color-picker: Color well is unusable
  • Fixed #8782: Editor: rare crash when displaying renderers panel
  • Fixed #8783: Editor: rare crash when nodegraph editor draws its background
  • Fixed #8785: Editor: crash when opening project containing an effect with corrupt timeline
  • #8750: UE4: Drop support for UE4.24


Changelog 2.10.2

Builds (sep 16th 2021)



  • All 2.9.12 LTS fixes
  • Fixed #8566: Curve folding to function is sometimes inaccurate
  • Fixed #8646: Content-browser: Cannot drag & drop files from the content-browser into external applications (ex: can’t drag/drop a texture from the content-browser into photoshop)
  • Fixed #8644: Nodal editor: When opening effect some wires are sometimes seen as hovered, and hitting Alt+Shift triggers a passthrough creation on wires even though the mouse cursor doesn’t hover a wire.
  • Fixed #8592: Drag/dropping assets in the content-browser to move them pops twice the same confirmation dialog asking if we’re sure to want to move the assets
  • Fixed #8584: PVR Loader: Fails loading RGB565 & RGBA5551 images
  • Fixed #8583: DDS Loader: Fails to load some images (R8G8 variations, and regular color images written by some softwares that do not specify the ‘RGB’ flag in the pixel-format header of the DDS file)
  • Fixed #8580: Occasional crash & memory corruption when viewing or converting BGR8 textures to BGRA8, whose size is not a multiple of 4 texels
  • #8585: Texture viewer: Allow exporting textures as .HDR files
  • #8582: DDS Loader: Add support for BGR565 & BGRA5551 formats
  • #8581: TGA Loader: Add support for 16-bits TGA files
  • #8567: Texture viewer: Allow exporting textures as .TGA files
  • Fixed #8356: Effect editor: User layout of panel not properly saved & restored in 2.10
  • #8645: Effect editor: Improve default layout
  • Fixed #8626: Unity: effect importer doesn’t work well if PocpornFX project file (.pkproj) is not at the root of the project


Changelog 2.10.1

Builds (sep 2nd 2021)



  • All 2.9.11 LTS fixes
  • Fixed #8354: Random display glitches when using VertexShader billboarding
  • Fixed #8402: GPU sim: Using any of the effect transforms accessors in a GPU layer causes it to fallback to CPU sim: effect.position, effect.orientation, effect.scale, effect.axisSide/Up/Forward/…
  • Fixed #8468: Effect editor: Bad highlighting of renderers in layers with multiple renderers
  • Fixed #8465: Nodal editor: Pop the color picker when double-clicking on a constant color node
  • Fixed #8434: Project launcher: Crash when creating a new project with the same name & path as another project in the project list, which is not found on disk
  • Fixed #8474: Project launcher: Adding a new project makes it appear in the project list with the name of the .pkproj parent folder instead of the actual name of the project
  • Fixed #8508: Texture viewer & Mesh importer UV Panel: Use middle-click panning to stay consistent with the node editor & timeline, instead of left-click panning
  • Fixed #8506: Annotation nodes do not have the proper icon in the undo-stack & node-creation dialog
  • Fixed #8504: Graph compiler: Attributes with semantic ‘Color’ should be seen with a value-range of {0,0,0,0}; {+inf, +inf, +inf, 1} instead of the current {-inf}; {+inf} range, which prevents some VRP optimizations from happening
  • Fixed #8481: New effect dialog: Typing a search string that matches no effect, then hitting ‘Enter’ to validate the dialog, allows creating an effect even though the effect list is empty and no preset is selected
  • Fixed #8480: Optimizer: Integer MOD operator with powers of two does not simplify to an AND
  • Fixed #8457: Content browser: Allow saving individual asset. Current has to be all assets through “File > Save All Assets”, when assets are modified without an asset window opened.
  • Fixed #8454: Texture viewer: Checkerboard background exhibits visual glitches when panning on a high-DPI screen
  • Fixed #8438: Profiler viewer: change the panning mouse button from left-click to middle-click to stay consistent with the nodal editor


Changelog 2.10.0

Builds (Aug 20th 2021)


Assets & core-lib

  • #8359: Trail node: Add a new ‘Distance (localspace)’ metric in addition to the existing ‘Distance’, which spawns based on the distance travelled by the particle in the effect’s localspace instead of the worldspace distance.
  • #8418: EventMultiplier & Trail node: Additional ‘Global’ LOD level in LOD dropdown: Uses the global scene lod.
  • #7660: Trail node: Make the ‘SpawnInterval’ & ‘FirstSpawnDelay’ properties actual pin inputs that can be set dynamically
  • #8330: Add “shape.intersect” template
  • #8234: “MeshSample” and “SpawnOnMesh” nodes: When in density sampling mode, allow auto-killing the particle when the sample falls outside the valid UV-set of the mesh.
  • #7754: Add more curve presets
  • #7614: parent.emittedCount returns a float instead of an int
  • #7506: New templates “WrapInBox”, “ContainAround”, “ContainAroundView”, and “ContainAroundEffect”, allowing to wrap particles within a volume following an object or the camera
  • Fixed #8122: ‘PlaySound’ node does not work, cannot specify sound path (since 2.9)
  • Fixed #7395: Decal renderer: FadeTop and FadeBottom are flipped in Editor.pkri


  • #7476: Mac-M1 (ARM64) support
  • #8260: Prewarm: Change the default prewarm max ticks from 10 to 1, follow a “performance by default” approach instead of “sim quality by default”
  • #7960: Nodegraph: Expose new accessors ‘effect.id()’ and ‘effect.uniqueId()’
  • #7613: Animtrack sampler: Add ‘trackCount()’ property, to query the number of tracks in the animation
  • #7507: GPU sim: Show GPU timings per layer
  • #3234: GPU sim: implement sample of static vector field


  • #7508: Material adapter graphs
  • #7603: Rework texture atlas ID behavior when IDs are out of range (negative or greater than ‘atlasSize-1’)
  • Fixed #7716: Incorrect IBL with transparent shaders in non-YUp projects
  • Fixed #7480: Billboards: Shading tangents discrepancy


  • Lots of small GUI improvements, icons, polish, etc…
  • #8401: Project launcher: Package library. Revamp of the old “online packages” tab, now allowing to search packages, added tags, will allow to expand the amount of available packages, and utimately open this to user-made content.
  • #8072: Project launcher: Vault, new tab where all the local & downloaded packages can be seen, imported into projects, or used to create new projects.
  • Fixed #7941: Editor: The GUI appears too big on windows on High-DPI screens
  • #3608: Project launcher: Add per-project thumbnail, banner, and additional descriptions and meta-data
  • #8346: Display Mesh, Texture, and VectorField asset’s custom ‘Description’ in the asset tooltip, just like effects
  • #8289: Allow drag & dropping .pkpr profiler reports into content-browser to view them in the profiler report window
  • #8013: Content browser: Allow quickly changing thumbnail size by using Ctrl+mousewheel, without having to go inside the editor settings panel to change the ThumbnailSize slider
  • #7780: Improved effect creation dialog
  • #7779: Add menu to save an effect as a preset
  • #2876: Editor: make the editor have a “Main window” (the content browser), which closes everything when it gets closed (see v1.x behavior)
  • #2266: Crash Reporter: Save Mail
  • Fixed #8347: Changing an asset’s .pkcf does not trigger a reindexation of the asset
  • Fixed #8341: Asset editors for Mesh, Texture, and VectorField fail opening if the .pkcf bake-settings file is invalid, even if the asset itself is valid
  • Fixed #8312: Editor should not warn when opening read-only assets inside viewers (ex: texture, mesh & vector-field viewers have no purpose to warn when the asset is readonly)
  • Fixed #8279: Opening corelib shaders, and answering ‘Cancel’ pops the same dialog again if no external application is bound to the shader asset type in the user settings.
  • Fixed #8265: Content browser: Edit > Rewrite All Assets: Does not apply some modifications the effect editor does on open, such as removing dangling unused objects in the effect file.
  • Fixed #8219: Editor: low level graphics API failures always display assert message boxes which crash then editor when hitting ‘break’
  • Fixed #8008: Contextual menus never display shorctuts that involve the mouse
  • Fixed #2807: Color Picker window stays open after closing the editor

Effect editor

  • #8146: Effect interface: Proper handling of default values for attribute samplers, allow setting & changing default values directly from the attribute list
  • #8145: Effect interface: Allow cloning attributes
  • #6950: Viewport: expose camera near/far in rendering settings
  • #6949: Viewport: expose camera FOV in rendering settings
  • #8366: Pop nodegraph search box when hitting Ctrl+F in the viewport
  • #8362: Micro-UX: When opening a “pure-template” effect (zero nodes in root layergraph, only templates), auto-collapse the “Layers” treeview so that the “Templates” treeview takes the entire space by default.
  • #8358: Text edit popup window: Add “preview” widget in a splitter to allow previewing what the formatted text will look like
  • #8357: Text edit popup window: Enable word-wrap by default
  • #7958: Script editor: Save font size to user settings (Ctrl+mousewheel)
  • #6358: Curve editor: Allow to save the current curve as a new preset
  • Fixed #8378: Viewport HUD text is hard to read on light backgrounds
  • Fixed #8361: Editor viewport text is blurry on high-DPI display

Nodal editor

  • #8350: Color-picker widgets & color node previews in nodegraph: Hard to see HDR colors, everything is displayed white.
  • #5810: Custom copy/paste shortcut allowing to paste a node preserving the plugged wires: Ctrl+Shift+Drag
  • #8121: Shapes: Rename ‘complex ellipsoid’ to ‘ellipsoid’
  • #6351: Add setting to disable auto-deletion of passthrough nodes
  • Fixed #8360: Color-picker widgets & color node previews in nodegraph: HDR colors with alpha < 1 are displayed incorrectly
  • Fixed #2616: Re-docking the nodal editor viewport disables antialiasing

Mesh importer

  • #8231: Playback skeletal mesh animations
  • #8232: Display animation paths & skeleton of skeletal meshes
  • #5516: Display mesh vertex colors & alpha
  • #7557: Display imported animation tracks in the viewport.
  • #8236: Allow exporting an UV-set as a texture
  • #8229: When hovering UV-sets with the UV2PC accel enabled, display the hovered point on the mesh in the viewport

Texture viewer

  • #8243: Texture format conversions: Implement BGRA8 -> BGRA4

VectorField viewer

  • Fixed #8197: Editor: Captured vector field thumbnails are empty

Graph compiler & optimizer

  • #8050: Layer optimizer: Detect and rewire pass-through events or never-kicked events
  • #3331: Layer optimizer: Detect and remove passthrough layers
  • #3330: Layer optimizer: Detect 0-life layers and collapse them into a single IR, spawn only.
  • #7235: Optimizer: Curves can now be constant-folded to non-polynomial functions

Plugins & Third-Party

Unity plugin

  • Fixed #4072: Unity: PKFxFX render only for the “MainCamera” tagged Unity Camera, does not render on a secondary Unity Camera

After-effects plugin

  • #8026: AE: D3D12 Renderer
  • #5176: AE: Support DX12 GPU sim


  • v2.10.0.7357: Renderers now clamp negative atlas ID to 0 instead of using abs()
  • v2.10.0.8773: Attributes & Samplers: Rename various internal nodes
  • v2.10.0.8774: Samplers: New internal resource descriptors
  • v2.10.0.9137: Add Prewarm Quality to Custom if tickCount or tickDelta touched
  • v2.10.0.9151: Default Decal material: Switched incorrectly named ‘FadeTop’ and ‘FadeBottom’



Content examples update

New “Samples” effects