PK-Editor v2.19

From PopcornFX
Revision as of 12:23, 27 June 2024 by Asow (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Back to anouncements
Released Mar 27th 2024.
Make sure you upgrade your runtime / plugins as well before switching to this version.

Release highlights

Fences 2D Grids 2D Grids Nodal Editor Improvements
Fences 1D, 2D, 3D & 4D Grids Grids bound as textures Nodal editor improvements

PopcornFX 2.19 release highlights livestream

The full sources of the UnrealEngine, Unity, and O3DE plugins are freely available on github:

Source code is available for everyone, can be freely used, modified and shared under the Community License terms.
Note: UE plugin archives are provided as 7z archives for better compression. They can be extracted using 7zip.


64-bits Windows build MacOS build Linux-64 build
PopcornFX-Editor_v2.19.5.21365_x64.exe (Latest) NewIcon.png
PopcornFX-Editor_v2.19.5.21365_x64.pkg (Latest) NewIcon.png
PopcornFX-Editor_v2.19.5.21365_x64.tgz (Latest) NewIcon.png

Changelog 2.19.5

Builds (Jun 27th 2024)

  • Fixed #13666: GPU sim: No visible feedback (warnings, errors) when using a renderer not supported by the current GPU simulation that causes fallback to CPU sim
  • Fixed #13641: GPU sim: Text sampler: Using charLineId(), charOffset(), and lineOffset() does not work, causes the simulation to fallback to CPU
  • Fixed #13648: Text sampler: text.charOffset and text.lineOffset are always optimized-out to zero when the optimizer's instruction VRP pass is enabled (it is enabled by default)
  • Fixed #13658: Text sampler: Inline mode is hard to edit in the propertygrid, does not allow popping the large text edit window like other text fields
  • Fixed #13672: Compiler: ICB pass sometimes produces non-canonical IRs, can cause missed optimization opportunities
  • Fixed #13635: Graph compiler stalls when compiling pow(x, infinity), happens with some settings of 'CirclePlacement' node
  • Fixed #13668: Script completion: Does not autocomplete script inputs/outputs
  • Fixed #13645: Propertygrid: Right-click 'Paste component values' is broken for scalars or vectors of type 'float', works for type 'int'
  • Fixed #13675: Frame exporter: Exports blank textures in projects with 'Right_Handed_Z_Up' or 'Left_Handed_Y_Up' axis systems
  • Fixed #13681: Frame exporter: Output path only supports absolute paths, makes it utterly impractical to use in effects that are versionned on a shared repository
  • Fixed #13682: Frame exporter: Cannot control the FOV of the capture
  • Fixed #13680: Frame exporter: in all modes, the first tile should be full-front-facing, instead it is slightly angled, and it's the last tile that is fully front-facing
  • Fixed #13678: Frame exporter: In StaticImpostor_3D mode, setting a different flipbook dimension in x and y causes the tiles to be messed-up / intermixed
  • Fixed #13677: Frame exporter: In StaticImpostor_3D mode, the bottom is never captured.
  • Fixed #13689: Content browser: Right click > New Atlas produces an invalid useless atlas with tabs as separators instead of commas
  • Fixed #13673: When exporting a package on windows, the "Copy path to clipboard" annoyingly copies forward slashes instead of backslashes, cannot be pasted inside an explorer window
  • Fixed #13667: UnrealEngine: Add support for UE5.4

Changelog 2.19.4

Builds (Jun 6th 2024)

  • Fixed #13627: GPU sim D3D: Shader generation error when using large integer constants
  • Fixed #13625: GPU sim D3D12: Occasional crash when toggling a GPU layer
  • Fixed #13617: GPU sim D3D12: Rare hang when at least one d3d12 layer is running alongside loaded-effects with spatial-layers
  • Fixed #13040: GPU-sim: Occasional crash when clicking in the viewport effect when sim is paused
  • Fixed #13552: Curve Editor: Linear Curve AutoZoom bug in Curve Editor
  • Fixed #13633: Nodal Editor: Node creation dialog: UP / DOWN arrow behavior when navigating the list is inconsistent, and does not allow to easily wrap around the list
  • Fixed #13623: Viewport: No highlight of the current debugged particle with the vertex-billboarding mode
  • Fixed #13612: Propertygrid: Issues with ctrl+drag in numeric boxes not applying values
  • Fixed #13517: Editor Compiler tab: When viewing multi-stage IRs with fence splits, each last instruction of each stage does not display its profiling data
  • Fixed #13229: Editor: Unable to import pkkg with unicode characters inside

Changelog 2.19.3

Builds (May 16th 2024)

  • Fixed #13538: Optimizer: pow to mul optimization leaves an unnecessary 'abs' instruction on the input when the power it is raised to is even.
  • Fixed #13536: Optimizer: Some algebraic optimizations are broken
  • Fixed #13595: Baking effects sometimes leaves multiple useless dangling resource nodes that take up unnecessary space in the final baked effect
  • Fixed #13594: If baked effects end-up in the project and visible in the content browser, and are baked in text mode, double-cliking on them opens the effect editor instead of showing an error. Opens a completely empty and useless effect editor window, with no graph.
  • Fixed #13556: Baking effects that contain samplers nested inside external templates cause those samplers to revert to default values.
  • Fixed #13549: Nodal editor: Copy-pasting nodes from an older editor into a newer editor doesn't properly apply some upgrades if the project settings paths of the new editor are different from the default paths.
  • Fixed #13505: UnrealEngine: allow scaling of static mesh samplers in Unreal Engine
  • Fixed #13471: UnrealEngine: Occasional crash in the UE editor effect preview when displaying the material parameter panel
  • Fixed #13469: UnrealEngine: LUT for features like diffuse ramp or alpha remap use wrap uv tiling instead of clamp uv tiling like in the editor.
  • All v2.15.19 LTS fixes:
    • Fixed #13535: Upgrader: Effects upgraded from v1 have incorrect camera position
    • Fixed #13534: Upgrader: Mesh renderers in effects upgraded from v1 have incorrect orientation when using StaticOffset
    • Fixed #13533: Upgrader: Mesh renderers in effects upgraded from v1 have incorrect orientation when using fields AxisForward and AxisUp
    • Fixed #13532: Upgrader: Meshes DiffuseColor in effects upgraded from V1 have incorrect alpha
    • Fixed #13531: Upgrader: Billboards in effects upgraded from V1 don't handle float2 Size field
    • Fixed #13529: Upgrader: Upgrades lower than v1 -> v2 upgrader synced version are re-applied
    • Fixed #13528: Upgrader: v2.7.0.69 upgrade incorrectly renames renderer node properties if the pkri already has a version superior to
    • Fixed #13522: Upgrader: Upgrading form v1 to v2 fails if there some older v1 assets don't contain the version
    • Fixed #13521: Upgrader: Upgrading v1 pkproj fails

Changelog 2.19.2

Builds (Apr 18th 2024)

  • Fixed #13501: D3D12 GPU sim: Rare corruption of the instance info (age, timeScale, ...) when a new instance is created
  • Fixed #13500: D3D11 GPU sim: Remaining persistent debug.drawValue with D3D11 simulated layers when the particle count decreases
  • Fixed #13464: Density sampling crashes when given atlas files with degenerated rects (0-sized rects)
  • Fixed #13463: GPU sim: Using image sampling & failing to load a .pkat image atlas file causes fallback to the CPU sim, instead of behaving like the CPU sim and sampling the full-sized texture
  • Fixed #13496: Localized text edit window: When the editor is in another language than english, trying to create an english localized string often fails
  • Fixed #13494: Localized text edit window: Adding a new language often does not use the correct language specified in the 'CopyFrom' dropdown
  • Fixed #13493: Localized text edit window: Preview is not refreshed when switching languages (need to apply with Ctrl+Enter to refresh it)
  • Fixed #13486: Editor: Crash in 'Editor Preferences > Post Effects' settings when no project has been opened and a LUT image has been set for the color-grading post-effect
  • Fixed #13406: Editor: Renaming the output of a public template which has an input with the same name also renames the input in all files that are using that template.
  • Fixed #13385: Unreal Engine: Raycasts/Collisions in projects using Chaos instead of PhysX do not report correct collision 'surfaceType'
  • All v2.15.18 LTS fixes:
    • Fixed #13491: Nodal editor: Renaming a node with a Ctrl+V of text containing multiple lines bugs the UI
    • Fixed #13261: .hdr image loader: Images saved with an x-flip in the header are loaded shifted 1 texel to the right
    • Fixed #13327: Unreal Engine: Dynamic Parameters don't work as intended in UE5.
    • Fixed #13318: Unreal Engine: Custom UE materials using world position offset with pkfx effects have sorting issues.
    • Fixed #13417: Unity: Crash on set attributes when an effect is stopped
    • Fixed #13353: Unity: Reset all custom materials button doesn't reset them for all qualities
    • Fixed #13351: Unity: PKFxEffectAsset inspector throw errors when re-importing if the renderer count changed
    • Fixed #13179: Unity: Renderers using different atlas subdivisions renders incorrectly
    • Fixed #13176: Unity: boolean return values are broken in native call with Il2CPP scripting backend
    • Fixed #13127: Unity: Rendering issues if the bounds of the effect are static
    • Fixed #12755: Unity: Can't disable PopcornFX log in Unity console.
    • Fixed #13312: O3DE: lit shaders not compiling on develop branch

Changelog 2.19.1

Builds (Apr 4th 2024)

  • Fixed #13122: Crash or incorrect behavior when fencing some spatial nodes or event nodes together
  • Fixed #13460: Image sampler: Crash when using sampleDensity or remapDensity with an atlas and a texture small enough so that at least one atlas tile maps to less than one texel in one dimension. (v2.19.0 regression)
  • Fixed #13453: Optimizer: In some rare cases chained selects are incorrectly optimized and produce broken simulations
  • Fixed #13451: Nodal editor: Bad values set when creating a 'pick' node from an enum wire
  • Fixed #13450: Nodal editor: Crash when creating a 'switch' node from an enum wire
  • Fixed #13447: Templates & Layer inputs of type 'samplerGrid' are not visible in the propertygrid, cannot autoexport, and cannot easily toggle pin visibility
  • Fixed #13445: Editor UI: Many toolbar button tooltips do not display their shortcut
  • Fixed #13443: Script editor: 'Apply' button does not work, instead shows the documentation
  • #13444: Script editor: Auto-apply changes when the script editor panel gets closed, current behavior of discarding changes is too error-prone

Changelog 2.19.0

Builds (Mar 27th 2024)

Templates & Corelib

  • #13437: Corelib: Add 'distance' helper, to compute the distance between two vectors
  • #13436: Corelib: Add horizontal vector math helpers: Horizontal add & Horizontal mul
  • #13407: Corelib: New 'HasChangedSinceLastFrame' node, that checks whether or not a value has changed since the last frame
  • #13400: Corelib: randpick & randswitch nodes: Allow exposing probability values as pins instead of pure properties
  • #13324: Corelib: unify inputs of OnDeath node with the other event trigger helpers: Add Size & Color helper payloads
  • #13341: Image sampler: Add new corelib nodes: texture.sampleChannel,, texture.readChannel, texture.UVToID, texture.UVtoFrac, texture.subUVToGlobalUV, ...
  • #13050: Corelib: add 'raycast' search keyword to 'scene.intersect' and 'shape.intersect' nodes
  • #13412: Corelib: CurveOverTime node: Add scene.time at spawn and evolve in the sampling cursors dropdown
  • #13287: 'shape.sampleFromUV': Add a bool output that tells if the UV landed on a valid mesh area & give an option to auto-kill the particle if the lookup was invalid, like the 'mesh.sample' node
  • #13190: Sampler nodes: Unify naming of nodes, using the namespace notation across the rest of the low-level corelib nodes, and some of the shape nodes, ex: 'curve.sample' instead of 'CurveSample'
  • Fixed #13182: Corelib: effect.uniqueId() is broken and returns
  • Fixed #13325: Trigger & TriggerOnce nodes: 'Color' payload does not have the color semantic, doesn't show color-picker in editor.

Simulation & Rendering

  • #13260: New Simulation fences
  • #12434: New Grid sampler: Direct access grids (1D - 4D), low-overhead writeable "arrays"
  • #13188: New vector crop / extend nodes & script functions: Allow to change the dimension of any unknown-dimension vector to any know dimension, either cropping the vector, or extending it by adding components at zero, one, or broadcasting the last component.
  • #13158: New 'scene.tickID()' script function & node, returns the current frame index since the start of the scene simulation.
  • #13342: Image sampler: Expose low-overhead functions to directly read a specific texel of the texture
  • #13288: Add a node & script function to test whether or not the PCoord of a mesh is valid or not
  • #13271: Editor: Display errors & warnings generated by backend shader compilations for GPU-sim
  • #13051: Make 'within' node & script function output a 'bool' value instead of a 0.0 | 1.0 'float' value
  • #13047: GPU sim: Add support for CDF curves in 'vrand' node (only worked in CPU sim previously)
  • #12989: GPU sim: Add debug.drawValue & debug.drawLine support
  • #12832: GPU sim: implement shape.projectPCoords & shape.project for Mesh sampler
  • #12675: GPU sim: implement shape.sampleSurfacePCoordsFromUV()
  • #12524: GPU sim: Implement sample density atlas & remap density atlas for image sampler
  • #12561: Editor: Enable shader debug information generation for GPU sim shaders
  • Fixed #13300: CPU sim: Constructing a float3 vector from 3 float values, and a float4 vector from 4 float values, is slow
  • Fixed #13252: CPU sim: sim.lodQueryBox() and sim.lodQueryPoint() do not work when some or all of its inputs are per-wave or constant values instead of per-particle values.
  • Fixed #12685: D3D11 GPU sim: Systematic GPU buffer allocation & data upload when sampling meshes
  • Fixed #13366: D3D11 GPU sim: Some shaders will fail to compile when using FXC with -WX, because of false-positive signed/unsigned mismatch warnings when doing an 'int' compare against an immediate constant starting with '0x'
  • Fixed #13336: GPU sim: Empty density texture as an inline property makes density sampling fail, instead of behaving like an identity mapping
  • Fixed #13339: GPU sim: Empty texture as an attribute sampler for density sampling/remapping fails, produce bad samples that mismatch the CPU-sim, which has an identity mapping
  • Fixed #13337: GPU sim: sampleDensity & remapDensity with a pure white or pure black texture returns wrong results
  • Fixed #13276: GPU sim: Sampling a shape exposed as a property with an empty path will cause the compilation to fail on GPU and fallback to CPU. An empty path should simply sample a point like in the CPU sim.
  • Fixed #13245: GPU sim: Setting a mesh attribute sampler to 'null' on an effect instance that has been running for a few frames with an overridden GPU mesh keeps the old mesh instead of resetting it to the default mesh defined in the effect.
  • Fixed #13243: GPU sim: Sampling mesh tangents causes fallback to CPU sim
  • Fixed #6143: GPU sim: Mesh sampling does not support 'fast' sampling mode, falls back to 'uniform': Not necessarily better, completely changes distribution on sparse meshes
  • Fixed #13352: 'orientation.fromForward' returns Nan values with very large axes (length about 1.e30f)
  • Fixed #13322: 'asint' & 'asfloat' script builtins & nodes do not behave correctly when fed the same type they reinterpret to. Ex: if an int is given to asint, it will convert it to float, then reinterpret it to int. Leads to completely broken results
  • Fixed #13289: 'mesh.sample' & 'SpawnOnMesh' nodes: Using the density texture with UV-sets that don't cover the entire surface is broken, misses some areas
  • Fixed #13247: Attribute sampler mesh: sometimes randomly toggles between uniform & naive random sampling
  • Fixed #13335: Image sampler: Giving out-of-range values for the 'filterMode', 'addrMode', and 'channel' inputs of the sampling & read functions has undefined behavior.
  • Fixed #13293: Image sampler: sampleDensity & remapDensity expose an 'addrMode' which is unused, has never been used, and makes no sense, it should be removed.
  • Fixed #13149: Editor: Skinned mesh sampling: Tangent.w contains zero, should contain a 1 / -1 sign of the bitangent/binormal, works as expected when sampling the non-skinned bind-pose, or static meshes


  • Fixed #13398: GPU Sim: GPU ribbons are broken (since v2.18)
  • Fixed #13435: Default materials: when using 'Lit' render-feature, 'NormalWrap' render-feature is broken, incorrectly wraps the N dot L term
  • Fixed #13255: Experimental materials: Dithering feature is broken and missing from .pkri
  • Fixed #13230: debug.drawValue helper: The 'Enabled' pin doesn't work, just turns the text black.
  • Fixed #13184: viewpos align billboards in custom axis systems are flipped compared to standard axis systems
  • Fixed #12310: LegacyLit: NormalWrapFactor is broken

Graph Compiler & Optimizer

  • #11808: Project settings: Allow disabling compiler warnings, or turning specific warnings into errors
  • #13227: Nodal editor: Display errors & warnings generated after compilation, when creating the actual simulation updater. These can cause GPU sim fallback to CPU sim, or no sim to happen at all, and are invisible to the user in the UI.
  • #13109: Compiler backends warnings & errors are invisible in-editor, always logged to the logfile, never to the proper compilation message stream.
  • #12085: Optimizer: Reduce the dimension of certain operations when some components are never used
  • #13075: Curve optimizer: Improve heuristics used to determine when to replace the curve sample by a polynomial or fourier expansion in the compiled instructions

Nodal editor

  • #13308: Nodal editor: Allow swapping input values/wired of simple 2-input math nodes by hitting the 'X' key
  • #13052: Nodal editor: Improve visibility of things plugged in nodes when hovering wires or pins
  • #4596: Nodal editor: Highlight clusters of nodes contributing to the currently hovered wire / pin
  • #3053: Nodal editor: Pan nodal view when dragging wire or node outside viewport
  • #13054: Nodal editor: Annotations: Ctrl+Del to delete the annotation and all its contents even if they are not selected
  • #13053: Nodal editor: Annotations: Copy/Pasting an annotation now also copies & pastes all its contents without having to select each node separately
  • #13238: Nodal editor: Display particle count in layer tooltips, in addition to sim time and memory footprint
  • Fixed #13363: Nodal editor: In a readonly graph, double-clicking on a constant node with a 'Color' semantic pops the color picker and allows to edit it
  • Fixed #13360: Nodal editor: In a readonly graph, double-clicking on an annotation or post-it to edit its description allows to edit it even when viewing a readonly template
  • Fixed #13275: Nodal editor: Overriding templates sim location is counter-intuitive: Internal layers forced to "CPU" Should not be promoted to "GPU" if the whole template is set to "GPU"
  • Fixed #13061: Nodal editor: Ctrl+Shift+Drag to clone nodes sometimes moves the original node along when using Ctrl+click
  • Fixed #13058: Nodal editor: Moving an annotation occasionally teleports some of the inner nodes outside the annotation
  • Fixed #8353: Nodal editor: Annotations sometimes move wrong nodes
  • Fixed #13348: Material adapter graph: Warnings emitted because an output is not found in the material are not visible on the renderer node in the parent nodegraph.
  • Fixed #13345: Material adapter graph: Material pins that are not forwarded to the renderer still appear in the renderer pin list

Effect editor

  • #13248: Move editor post-fx settings from user settings to project settings, allows to have better project presets depending on the target engine, and to better tweak the post-fx stack per-project
  • #13110: Editor viewport post-process: add color remap post-fx
  • #3288: Editor viewport post-process: add more control on the chromatic aberration (distortion)
  • #13232: Backdrop mesh: Add a way to specify which LOD level to use to display the backdrop if the mesh has multiple LODs
  • #13225: Effect thumbnails: Allow capturing debug.draw* nodes when they are enabled in the viewport
  • #13237: Effect editor advanced tab: Summary Panel: Display page usage ratio in the page views
  • #13211: Effect memory inspector: Better feedback when there's an error loading the file
  • #12972: Editor rendering: Change default billboarding from CPU billboarding to VertexShader
  • #10051: Attributes: Allow copy/pasting attributes from one effect to another
  • #9162: Editor: improve GPU sim timings display
  • Fixed #13244: Effect Editor: Using skinned mesh backdrops updates the skinned mesh sampling data each frame even if there is no attribute sampler active that will sample the mesh: Useless performance drop
  • Fixed #13369: Effect editor: When the effect backdrop spawns the current effect, all attributes are set to defaults, and attribute samplers bound to skinned meshes are ignored
  • Fixed #13239: Effect editor advanced tab: Pipeline view: 'Unfold tasks' box shows incorrect timings, also includes evolve timings in some cases for layers with a single page.
  • Fixed #13231: Axis-System display not sticking to left-down corner with custom axis system
  • Fixed #13217: Editor: Skinned mesh backdrop has poor performance when using a mesh with many LOD levels: Every single level gets skinned every frame even though only the LOD0 is needed for display & sampling
  • Fixed #13177: Wind backdrop properties ignore the project axis system

Mesh importer

  • #13292: Mesh importer UV panel: Export to image: Add option to offset UVs before rasterizing the image, to help handling UDIMs
  • #13291: Mesh importer UV panel: Export to image: Add option to export triangles colored with the triangle area ratios to use with density sampling
  • #13290: Mesh importer UV panel: Export to image: Add option to export filled triangles instead of wireframe
  • #9306: Mesh importer: visualize tetrahedrons from tetrahedral interior mesh generation

Editor (General)

  • #13199: When opening a project, check if AssetRegistry.pkbo is readonly, and if it is, warn the user that it might be a problem, the Cache folder should not be pushed in repositories
  • #13242: When opening a project, warn if there are out-of-date assets from a version of PopcornFX older than the current project (upgrade miss), and ask if they should be upgraded
  • #13203: Trying to open binary baked files in the editor produces an unhelpful error message. Make it more explicit that it's failing because the file is a baked binary file and the editor cannot open these.
  • #13384: New project presets: Add default surface types to Unreal preset
  • #13228: Editor: Additionnal command line argument to import a package in a project: '--importpackage'
  • #13134: Marketplace: When clearing the download cache of a package, show in the confirmation dialog how much space is about to be freed
  • #13133: Marketplace: Allow clearing marketplace download cache in a single action instead of having to right-click on every package individually.
  • #8602: Content browser: Allow force-refreshing the current view using F5
  • Fixed #13347: Double-clicking on a .pkproj file doesn't open it with the proper editor, only with the latest installed
  • Fixed #13383: Project settings: Changing existing project constants (renaming or changing the value) isn't properly taken into account until the editor is restarted, should be taken into account immediately, just like when adding/removing constants.
  • Fixed #13371: Editor: Export asset details to spreadsheet: Does not remember last export folder
  • Fixed #13256: Editor materials: No error or warning is visible in content-browser when material has some render features that fail to load (ex: do not exist anymore in the .pkri, or .pkri not found)
  • Fixed #13241: Dangling thumbnails dialog when opening a project does not tell user when the files failed to be removed because they were readonly.
  • Fixed #13216: Content browser & Texture viewer: Editor displays 0x0x0 image size when it has an unsupported format, even though header information might still be available and displayable
  • Fixed #13161: Marketplace: Hitting F5 at the same time quickly enough after having clicked on a package to view its contents causes the UI to be messed up and display the widgets twice
  • Fixed #13131: Project launcher: Installed editor tab does not refresh properly when uninstalling some versions

UnrealEngine plugin

  • #12993: Unreal plugin: Drop support for UE4.27 & bump visual studio projects from vs2017 to vs2022
  • #12915: Unreal plugin: Effect names added to CPU simulation tasks instrumentation
  • Fixed #12712: Unreal plugin: reimporting an effect looses all attribute values
  • Fixed #13205: Unreal plugin: Asset paths with non-ansi characters are incorrectly handled by the plugin
  • Fixed #13316: Unreal plugin: In UE5, skinned mesh attribute sampler samples meshes adding in with a huge scaling factor of over 200x
  • Fixed #13209: Unreal plugin: Drag & Dropping an effect for the first time in a project sometimes does not import anything when the source pack has not been set manually beforehand, requires retrying multiple times or an UE editor restart
  • Fixed #12995: Unreal plugin: 'OneShotTrigger' property of 'bool' attributes is not implemented in the UE Editor UI
  • Fixed #12942: Unreal plugin: particles are badly blurred with UE5's TSR
  • Fixed #13311: Unreal plugin: Skeletal mesh attribute sampler: Checking the 'SkinNormals' or 'SkinTangents' checkboxes without checking 'SkinPositions' cause no skinning to occur.
  • Fixed #13202: Unreal plugin: When importing the first effect in the unreal project, the source PopcornFX project path is set as an absolute path in the project settings. Whenever possible, prefer automatically setting a relative path.
  • Fixed #12917: Unreal plugin: Crash when importing or cooking effect containing GPU sim layers sampling local meshes

Unity plugin

  • #12723: Unity: implement Transform UVs for mesh renderers
  • #13320: Unity: show renderer node CustomName on renderers in the PkFXEffectAsset inspector
  • #13304: Unity: Reduce image sampler load time
  • #13303: Unity: Reduce runtime memory footprint used by effect resources
  • Fixed #13185: Unity: Camera.position and Camera.direction nodes have different behaviors compared to PopcornFX Editor
  • Fixed #13270: Unity: PreloadEffectFromAsset cause lag spikes
  • Fixed #13432: Unity: VAT mesh renderers are not displaying correctly
  • Fixed #13408: Unity: effect browser throw warnings when the effect have a mesh renderer
  • Fixed #13397: Unity: null reference when hitting play with a PKFxEffectAsset selected
  • Fixed #13082: Unity: Asset imported with the PKFxImporter can have mismatching fileID on different computer
  • Fixed #12918: Unity: Top offenders UI canvas don't show any effects

All v2.18.6 fixes

Simulation & Rendering

  • Fixed #13433: Changing the query mode of a spatial-layer node makes the nodegraph fail to compile
  • Fixed #13431: GPU Sim: Baked effects have their GPU newborn kernel aliased with the evolve kernel, inducing various issues on the GPU simulation
  • Fixed #13359: GPU Sim: GPU layers may report a large number of dead particles, leading to various effect-instance issues
  • Fixed #13305: GPU sim D3D11: Cannot have more than 1024 effect instances
  • Fixed #13414: Rendering: Multi-plane ribbon atlas incorrect with multiple instances and customU.
  • Fixed #13294: Image sampler: remapDensity in 'Linear' mode sometimes returns invalid UVs containing infinities


  • Fixed #13302: Nodal editor: Crash when copy-pasting a layer with attributes in the effect graph and waiting for the auto-save to kick in without validating 'the warning window that pops-up on paste.
  • Fixed #13368: Editor: Crashes when closing two effect editors that use the same skeletal mesh backdrop, when both were opened side to side
  • Fixed #13295: Memory report of an effect using sampleDensity or remapDensity is incorrect, reports a much lower size than is really used for the texture density mapping lookup
  • Fixed #13254: Attributes: Crash when changing the Attribute 'ExportedType' from the effect interface
  • Fixed #13201: Editor: Right-click 'Rename' on an attribute pops the rename dialog twice
  • Fixed #13286: Mesh importer: UV panel sets itself up with the union of the bounds of all UV sets, instead of the one being currently viewed, makes it hard to navigate when some UV-sets are wildly out of the [0,1] range

UnrealEngine Plugin

  • Fixed #13208: Unreal plugin: Editor settings & source project are re-resolved & reloaded everytime the 'Settings()' accessor is called, extremely inefficient
  • Fixed #13204: Unreal plugin: Source paths in the plugin settings are always serialized as absolute path, even when a relative project path is entered

Unity Plugin

  • #13235: Unity: texture atlases for meshes in HDRP
  • #13219: Unity: UseVertexColor render feature for Meshes renderers in URP
  • Fixed #13240: Unity: DoubleSided for meshes not working with HDRP
  • Fixed #13224: Unity: TransformUVs.RGBOnly is not working properly for mesh renderers in URP
  • Fixed #13223: Unity: Renderers using different atlas subdivisions use incorrect altas definition in URP
  • Fixed #13222: Unity: Renderers with different alpha threshold have incorrect rendering in URP
  • Fixed #13221: Unity: TransformUVs.Offsets is reversed for Mesh renderers
  • Fixed #13220: Unity: Fix TransformUVs rendering for mesh renderers is broken in standalone builds

AfterEffects plugin

  • Fixed #13418: AE: Frames are instable and cause popping of particles when seeking quickly
  • Fixed #13030: AE: Screen aligned billboards render backwards

Content examples update

New "Tutorials" effects

Simple 1D grid example Conway's "Game of life" using a 2D grid
Simple 1D grid example
Conway's "Game of life" using a 2D grid