PK-Editor v2.8

From PopcornFX
Jump to navigation Jump to search

Back to anouncements
Released Jan 7th 2021. (preview-1 released Dec 10th 2020)
make sure you upgrade your runtime / plugins as well before switching to this version.

! IMPORTANT ! After upgrading a project to 2.8.0, make sure you clear your shader-cache by doing 'Edit > Clear shader cache' !

Release highlights

Effect prewarm GPU-sim mesh renderers Graph coordinate-frame view Multiple inputs for math nodes
Builtin effect prewarm GPU-sim mesh renderers Graph coordinate-frame view Multiple inputs for math nodes


64-bits Windows build MacOS build Linux-64 build
PopcornFX-Editor_v2.8.6.6588_x64.exe (Latest) NewIcon.png
PopcornFX-Editor_v2.8.6.6588_x64.pkg [Experimental] (Latest) NewIcon.png
PopcornFX-Editor_v2.8.5.6051_x64.pkg [Experimental]
PopcornFX-Editor_v2.8.4.5757_x64.pkg [Experimental]
PopcornFX-Editor_v2.8.3.5470_x64.pkg [Experimental]
PopcornFX-Editor_v2.8.2.5003_x64.pkg [Experimental]
PopcornFX-Editor_v2.8.1.4588_x64.pkg [Experimental]
PopcornFX-Editor_v2.8.0.4373_x64.pkg [Experimental]
PopcornFX-Editor_v2.8.6.6588_x64.tgz (Latest) NewIcon.png

Changelog 2.8.6 patch

Builds (Apr 1st 2021)


UE4 Plugin

Unity Plugin

AfterEffects Plugin


  • Fixed #7330: scene.orientationFromUp occasionally computes garbage values.
  • Fixed #7230: 'effect.age' is incorrect when there's a single effect instance in the simulation, and its 'effect.timeScale != 1.0'
  • Fixed #7252: Editor: 'Debug all particles' toolbar button doesn't work anymore
  • Fixed #7313: Online packages tab: An already downloaded package can't be imported if a newer version is available but not downloaded.
  • Fixed #7314: Editor login window: email validation function is applied on every single keystrope, prevents from typing email
  • Fixed #7311: Curve editor: Viewport isn't refreshed when changing some properties, until the mouse cursor is hovered on the curve.
  • Fixed #7253: Drag/dropping external files inside the content-browser (such as .pkkg files) is not reliable, randomly fails and does nothing.
  • Fixed #7228: Changing an external file containing templates which declare attributes without re-saving all effects that use those templates causes a runtime crash when trying to run the baked assets
  • Fixed #7262: Upgrader: Incorrect handling of Unicode BOM headers if .pkproj of .pkfx files have been manually saved by an external text editor which inserted a BOM header.
  • Fixed #7285: UE4: TransformVector and TransformPosition nodes do not work for mesh particles when source/destination is set as "Mesh particle space" in UE4.25 and higher
  • Fixed #7284: UE4: VAT materials do not properly support orientation / scale
  • Fixed #7275: UE4: Distortion material isn't two sided
  • Fixed #7269: UE4: Occasional crashes when unloading level
  • Fixed #7246: UE4: Diffuse ramp feature doesn't match PK-Editor implementation
  • Fixed #7344: Unity: Expose audio callback to users
  • Fixed #7061: Unity: Move Color property names to Factory into Material bindings
  • Fixed #7062: AE: emitter position in 3d space doesn't match with AE

Changelog 2.8.5 patch

Builds (Mar 11th 2021)

  • Fixed #5760: Occasional crash in effect compiler
  • Fixed #7191: Improve efficiency of 'effect' accessors when there's a single effect instance per simulation wave: effect.age, effect.lodBias, effect.isRunning, effect.isRenderingEnabled, effect.orientation, effect.axis*...
  • Fixed #7186: Perf: Particle BoundingBox computations always fall-back to slow codepath even when no particles are explicitly disabled.
  • Fixed #7090: Editor install: add "Install" menu when right-clicking on an editor version in the version list

Changelog 2.8.4 patch

Builds (Feb 26th 2021)

  • Fixed #7000: Optimizer: Will sometimes incorrectly replace < by <=, > by >=, and vice-versa, causing subtle bugs: for example breaks the draw-number template when the input is a compile-time constant.
  • Fixed #6975: Optimizer: float->int conversions cause incorrect range-propagation, unexpectedly breaks some effects (ex: draw-number template when the input is a compile-time constant)
  • Fixed #7031: Optimizer: 'shape.position' function/node is incorrectly seen by optimizer as returning a position whose XYZ components are always positive
  • Fixed #5725: Optimizer: 'shape.project' function/node is incorrectly seen by optimizer as returning a distance in the [0, +inf[ range instead of ]-inf, +inf[, causes LimitDistance template to break in some cases
  • Fixed #6528: Editor: Instant crash when opening any effect on some Mac hardware
  • Fixed #6981: Adding a dxdF node breaks graph compilation
  • Fixed #7032: Nodal editor: Node creation dialog displays incorrect search keywords in the tooltip when hovering nodes
  • Fixed #6976: Template shelf ordering incoherent with "color"
  • Fixed #6982: Logfile: html logfile forces windows-1252 charset, doesn't properly display logs containing text in cyrillic, japanese, etc...
  • Fixed #6967: Effect treeview: Copying a template from the template treeview and pasting it inside a graph does nothing visually (shouldn't), but creates an undostack action, and adds all the copied nodes to the pkfx file (visible on Ctrl+S)
  • Fixed #5489: Effect treeview: Pasting a template behaves badly when what's copied isn't a template: Does nothing visually, but inserts an action in the undo-stack, and leaves dangling nodes in the pkfx file.
  • Fixed #7037: LY: Collision Filters not working
  • Fixed #7035: LY: PhysX collisions not working in Editor Simulate and Game modes
  • Fixed #7033: LY: Emitter components invalidate property display even when not selected

Changelog 2.8.3 patch

Builds (Feb 11th 2021)

  • Fixed #6855: CPU sim: scene.orientationFromForwardUp() has poor performance
  • Fixed #6907: Effect Editor: Timeline panel is unresizable from the bottom
  • Fixed #6489: Effect Editor shows negative timings in layers simulated on GPU
  • Fixed #6414: Nodal editor: Exec stage color not propagating when async-compiles are disabled
  • Fixed #6955: Nodal editor: F1 show documentation: Does not work for builtin nodes
  • Fixed #6966: Nodal editor: 'neg' node does not appear in node search when '-' is typed (but 'sub' and 'one minus' nodes do appear)
  • Fixed #5923: Nodal editor: Weird ordering in node creation dialog when typing '-'
  • Fixed #5752: Nodal editor: Layergraph-only nodes have 'Exec Frequency' and 'Exec Stage' displayed even though it's ignored
  • Fixed #5880: Nodal editor: Constant node values are not displayed if node has a CustomName
  • Fixed #6881: Content browser: Regular freezes of a couple of seconds when opening projects, when the project launcher has lots of projects (15+)
  • Fixed #6381: Content browser: Closing content-browser before thumbnails have finished loading causes a crash
  • Fixed #6906: Content browser: Unfriendly default layout on first install
  • Fixed #6926: Editor: baking effects fails if effect contains dependencies on resources with forbidden resource extensions
  • Fixed #6957: Editor: Pre/Post version control actions are applied even if UseVersionControl is disabled
  • Fixed #6956: Editor: crash when effect is analyzed and it contains an incompatible resource plugged into a sampling node
  • Fixed #6905: Editor: When bashing the double-click on an asset and the machine is laggy, the editor ends up opening multiple instances of the effect editor for this asset.
  • Fixed #6880: Editing & translating localized texts in-editor is almost impossible (ex: node custom names & descriptions)
  • Fixed #6876: Editor: crash when modifying .pkcf file on disk if a folder has the same name
  • Fixed #6874: Editor: crash when importing meshes without materials but geometry
  • Fixed #6873: Editor: instant crash when opening an effect and D3D GPU simulation couldn't be initialized
  • Fixed #6228: Editor: cannot import packages containing .fbx files with an attached .pkcf config file
  • Fixed #6878: User & project settings do not properly remember which categories were expanded or minimized
  • Fixed #6853: UE4: custom blueprint nodes warnings when compiling blueprint in 4.26
  • Fixed #6852: UE4: Crash when effect import fails
  • Fixed #6321: UE4: Changing source effect on emitter does not trigger details panel refresh, leading to crash
  • Fixed #5053: UE4: Reimporting a mesh currently used for a popcornFX renderer crashes UE4
  • Fixed #4159: UE4: D3D12 GPU sim texture attribute sampler crash when moving blueprint instance in level with attribute sampler as component
  • Fixed #3552: Unity: Cannot override attribute sampler texture density
  • Fixed #6495: Unity: Add Information to failed gamma space change when importing dds for distortion
  • Fixed #4307: Unity: Ramp texture attribute returns the wrong colour at u = 1
  • Fixed #4034: Unity: Import panel doesn't close on its own
  • Fixed #2694: Unity[Legacy]: Distortion doesn't render if there's more than one Camera in the scene
  • Fixed #6902: LY: Do not set process priority in the gem
  • #6893: LY: bind scene.sampleWindField sim interface instead of LmbrWind
  • #6846: LY: Wind with PhysX
  • #6959: Editor: Add Lumberyard "new project" preset
  • Fixed #6896: AE: Attribute image sampler density - runtime changes of source texture assert on dimensions.
  • Fixed #6777: AE: Attribute not being applied if the effect is played again
  • Fixed #6775: AE: Automatic set Emitter transform Position to be in the middle of the comp
  • Fixed #6774: AE: Crash when clicking reimport on a PKFX emitter if it hasn't been set.
  • Fixed #6751: AE: Wrong Version information when clicking on about in the emitter
  • Fixed #6858: AE crashes when clicking on sample once in texture sampling attribute

Changelog 2.8.2 patch

Builds (Jan 28th 2021)

  • Fixed #6478: Per-layer LOD metric overrides are broken if the per-effect override isn't explicitly enabled
  • Fixed #6783: GPU sim: LOD metric is not working properly
  • Fixed #6763: GPU sim mesh renderers: Does not clamp MeshIDs like CPU sim, causes some effects to break down
  • Fixed #6510: GPU sim: crash when connecting shape node into ShapeSample node
  • Fixed #6784: GPU sim: sim.lodQueryPoint does not work, always returns '0'
  • Fixed #6061: GPU sim: Fp32Lum textures are sampled as red, Unlike CPU sim which samples them as luminance/grayscale.
  • Fixed #6532: Texture sample color space discrepancy when using BGR8 textures (jpg, png without alpha, or any other format with uncompressed 8-bit channels and no alpha)
  • Fixed #6146: GPU sim: 'drawVector' corelib template does not draw anything
  • Fixed #6523: Random crashes when content browser analyzes assets
  • Fixed #6828: Random crashes when compiling nodegraphs
  • Fixed #6729: Crash in some projects configuration when editing renderer after associated .pkri was opened/closed
  • Fixed #6524: Crash when re-opening an effect after it was closed, if some renderers reference material paths with different casing than on-disk files
  • Fixed #6491: Details view: Occasional crash when adding a new column in the settings
  • Fixed #6490: Details view: Resizing a column sometimes crashes the editor
  • Fixed #6768: Closing the editor on larger projects takes a very long time (the process can stay up for more than 1 minute while writing the AssetRegistry.pkbo file)
  • Fixed #6733: Uniform textures are incorrectly constant-folded when they have formats Fp16Lum, Fp16LumAlpha, Fp32LumAlpha, or LumAlpha8
  • Fixed #6732: Uniform BGR8 textures are incorrectly constant-folded
  • Fixed #6546: Asset > Show Dependencies: Case-sensitive, misses dependencies which do not have a correct casing
  • Fixed #6531: Occasional assert when compiling graphs that contain 'isfinite' or 'isinfinite' tests
  • Fixed #6530: Occasional assert when compiling graphs that contain a reinterpret between quat <--> float4 (uses 'asorientation()')
  • Fixed #6527: Editor: Casing changes are ignored when editing file paths in property grid
  • Fixed #6522: Thumbnail: envmap color not properly set when capturing for the first time.
  • Fixed #6520: Material editor: shaders do not compile if a rendering feature property of type 'Link' has a CategoryName with spaces or tokens unauthorized in the shader language
  • Fixed #6519: Export package: When exporting two effects that reference the same dependency, but with different filename casings, adds the same file twice to the archive.
  • Fixed #6477: Nodal editor: Hard to hover wires & insert nodes when zoomed out
  • Fixed #6476: Nodal editor: Tooltips on event wires show event named with an internal "__e_" prefix, unnecessary, disturbing.
  • Fixed #6159: Give user some feedback when opening an effect editor window takes a long time (usually waiting for GPU sim compute-shader compilation): Pop a progress window
  • Fixed #6123: Nodal editor: Ctrl+G does not forward auto-export flags to final node. Breaks graphs.
  • Fixed #5949: Nodal editor: Tooltips do not stay up long enough
  • Fixed #5903: Improvements of the compilation time of nodegraphs, notably when a Trail template is used
  • Fixed #1117: Nodal editor: Add a 'Recompile' button when in 'Developer' mode
  • Fixed #6467: UE4 plugin: Crash when using launching game in editor with New Editor Window (PIE)
  • Fixed #6498: Unity plugin: Baked pkmm is not outputed to the correct directory
  • Fixed #6496: Unity plugin: Implement Prewarm
  • Fixed #6507: Unity plugin: Remove Broadcasted Event description from PKFxEmitter
  • Fixed #6503: Unity plugin: Add Stopped()
  • Fixed #6502: Unity plugin: PKFxEmitter: Add getter to attributes properties
  • Fixed #6501: Unity plugin: Add an easier GetAttribute()
  • Fixed #6499: Unity plugin: PKFxEmitter should expose an easier way to set it's asset
  • Fixed #6493: Unity plugin: error when importing pkmm dependencies: Unsupported PKMM file version
  • Fixed #6480: Unity plugin: Refactor C# code to clarify what is internal and what is an exposed API
  • Fixed #6447: Unity plugin: Provide PopcornFX Unity plugin as an Unity package
  • Fixed #6845: LY plugin: Disable deprecated CryPhysics
  • Fixed #6772: LY plugin: Effects not working in editor mode after an hot reload in game mode
  • Fixed #6484: LY plugin: Helper Loop Emitter component doesn't kill in game mode
  • Fixed #6463: AE plugin: Envmap image type is locked to .dds, .hdr plugin is not loaded.

Changelog 2.8.1 patch

Builds (Jan 14th 2021)

  • Fixed #6023: Effect interface: Crashes when hovering while async compile is in progress (async compiles are disabled by default in v2.8.0)
  • Fixed #6399: Can set negative life in 'SetLife' node, produces buggy simulations
  • Fixed #6407: Curve editor: Crash when swapping curve channels when curve is in 'Linear' mode and has more than 3 control-points
  • Fixed #6406: Curve editor: Add 'Reset tangents (flat)' option to reset tangents to 0
  • Fixed #6405: Curve editor: 'ResetTangents' resets all the tangents instead of only the selected control-points
  • Fixed #2787: Curve editor: Doesn't show Min/Max value limits in the curve editor viewport (even though runtime correctly takes them into account in the simulation)
  • Fixed #6379: GPU sim: Some shape functions are broken
  • Fixed #6459: GPU sim: Random crash in effects with lots of GPU sim layers
  • Fixed #6380: GPU sim: Random compiler crash when using 'box.project()' or any node that performs projection on a shape of type 'box'
  • Fixed #6451: Occasional crash with decal renderer
  • Fixed #6404: Double-clicking in a numeric inputbox does not select the entire value
  • Fixed #6362: Material editor: custom materials without "Opaque" or "Transparent" rendering features aren't rendered
  • Fixed #4176: Editor sometimes writes corrupt files when writing in text format
  • Fixed #6364: UE4: Light particles cannot affect volumetric fog (requires to use UE4_Light material from Content Examples project)
  • Fixed #6450: UE4: Volumetric fog default material (requires UE4_VolumetricFog material from Content Examples project)
  • Fixed #6363: UE4: Only lights from a single renderer are displayed when several light renderers are present in the scene
  • Fixed #6460: UE4: GPU simulated effects fallback on CPU sim

Changelog 2.8.0

Builds (Jan 7th 2021)

Assets & core-lib

  • #5685: 'remap' node: Allow inline-editing min/max inputs, without having to create constant nodes.
  • #5640: 'vrand' node: Add "Scale" property to allow quickly scaling the output beyond a radius of 1.0
  • #5785: Add 'Spawn on Texture' master-template
  • #5784: Add 'Spawn on Mesh' master-template
  • #5745: Add 'MeshSample' master-template
  • #5787: Add 'TextureSampleNormal' and 'TextureSampleDisplacement' helper nodes
  • #6154: 'ShapeSample' & 'MeshSample' nodes: Expose position/orientation/scale helper input to easily transform the output sampled data
  • #5815: 'EventMultiplier': Add LOD controls
  • #5750: 'EventMultiplier': Add "RandomCount" control
  • #5645: 'EventMultiplier': Change the default values so it's faster to setup in the most common case
  • Fixed #5911: 'Physics' & 'TurbulenceSample' nodes: Cannot scale vector-field, 'Scale' property is in fact the scale of the output vector (ie: a 'Strength'), not the scale of the actual field
  • #5646: Add new high-level 'Physics' template that encapsulates most common "physics" behavior: the old "Physics" node, wind controls, and collision
  • #5741: 'Collision' node: Remove top limit of 255 maximum bounces
  • #5649: 'Collision' node: Add missing inputs & outputs: 'Localspace' input when colliding with a shape, and CollisionPos/Normal + Hit fraction outputs
  • #5734: 'scene.intersect': Make it a sim interface so it can be overridden in the GPU sim + expose sphere sweep parameters
  • #5724: 'Attractor' template: add way to dynamically offset & rotate the attractor
  • #5643: 'LimitDistance' template has no builtin 'Localspace' property
  • #5642: 'Containment' template has no builtin 'localspace' toggle, should be in localspace by default.
  • #5654: 'blackbody' node: Add a temperature unit property to tell which units the input temperature is in
  • #5673: Add new 'toFloat', 'toInt', and 'toBool' cast helper templates
  • #5639: 'asInt' and 'asFloat' nodes are error-prone for artists: Rename them to the more explicit 'reinterpret.asInt' and 'reinterpret.asFloat'
  • #5641: Improvements over the board: Add missing descriptions, search keywords, more outputs on some nodes, etc...
  • #5888: Simulation interfaces: Unify 'scene.sampleWindField' with 'scene.intersect'
  • #5996: Corelib & scripts: 'sim' namespace: Add 'isRunningOnGPU' node & script function
  • #5995: Rename 'self.isDeterministic' to 'sim.isDeterministic', more consistent with what it represents
  • Fixed #5797: Template: 'drawVector': Cannot change material blending mode & distance sorting settings, unlike 'drawLine'


  • #5682: Export nodes: Allow to expose a list of multiple "allowed" types, not just `auto`
  • #5461: Support for multiple inputs for basic math nodes: add, mul, min, max, or, and, ...
  • #4936: Events payload extract nodes now automatically extract from the parent payload when the node has nothing wired into its 'parent' input
  • #5370: Add node to lerp between orientations
  • Fixed #5738: Using a node that internally contains a sim interface inside the layergraph, and wiring it into a layer's input data pin works, but still displays an error.
  • Fixed #5287: Incorrect resolution of some output pin types
  • Fixed #5278: all orientation nodes & functions are reporting a [-inf,inf] range, instead of [-1,1]
  • Fixed #5277: all view.axis* nodes are reporting a [-inf,inf] range, instead of a normalized unit-vec range. Prevents some optimizations from happening
  • Fixed #2389: Nodegraph: Construct 3D Vector node triggers errors when set to SUF_RightHanded or SFU_LeftHanded mode

Nodal editor

  • #5860: Annotations: Allow scaling overall annotation size, to make smaller, or larger, annotations + Add "post-it" display mode
  • #5506: Allow drag & dropping assets from the content-browser or OS explorer into the nodal editor to create new resource (sampler) nodes, or on existing resource nodes
  • #5859: Do not display "ExecFrequency" and "ExecStage" for nodes where they have no effect
  • #5324: Detect what type of graph we're in, and show the info to the user with a visual clue
  • #5325: Node creation dialog: hide inappropriate node types based on the type of graph we're currently viewing
  • #4439: New Localspace/Worldspace view
  • #6124: When grouping nodes, look at what nodes are grouped, and automatically set the new subgraph's 'ClassType' based on what nodes are being grouped
  • #5950: Nodal editor: Add option in user settings to display all inline pin values even when they are zero
  • Fixed #5743: Creating an input or output node by dragging a wire from an existing pin copies all properties, except the pin description
  • Fixed #5742: Nodegraph tooltip formatting: When using <ul> and <li> to format lists in descriptions shown in tooltips, using newlines messes up the final formatting
  • Fixed #5719: Deleting a node does not properly rewire inputs to outputs like Ctrl+T does (ignores the "PassthroughInput" property of output pins)
  • Fixed #5665: Occasional crash when hovering an event wire
  • Fixed #5845: Ungroup nodes: Does not behave properly with auto-exported properties (special case with pins)
  • Fixed #5739: Ungroup nodes: Does not behave properly with auto-exported properties
  • Fixed #5727: Using the mouse "back" button too fast registers as a double-click and opens the node under the cursor instead of going back twice
  • Fixed #6153: Pulling a wire out of a pin which already has something wired in and popping the node creation dialog does not show all the nodes that can be wired in
  • Fixed #2596: Unplug pin on construct Vec3 generate compile error while baking
  • Fixed #6034: Wire highlight ignores the "Passthrough input" property of output nodes when walking back nodes
  • Fixed #5953: Nodal editor: Hovering wires is hard to see, improve highlight feedback visibility
  • Fixed #5952: Nodal editor: Add more options in user settings to control pin value display


  • #5421: Effect prewarm (/ pre-roll / warmup)
  • Fixed #5886: Curves in non-exact mode (faster, low-quality sampling) fallback to full precision exact mode when sampled with a wave-constant value.
  • Fixed #5792: Texture sampler: 'dimensions()' getter doesn't work if the image isn't sampled.
  • #6058: CPU sim: Constructing a float2 vector from two float values is slow.
  • Fixed #5766: Unnecessary overhead when particles with side-effects die (since v2.4.0)
  • Fixed #5958: Sampling UV2PC from a mesh whose texcoords for an empty rect induces a MASSIVE performance hit.

Simulation: GPU

  • #5355: GPU sim: implement sorting for vertexbb billboard particles in editor
  • Fixed #4996: GPU Sim: regenerating compute shader source at runtime creation generates longer load times
  • Fixed #4837: GPU sim: Inaccurate bounding boxes for billboards
  • Fixed #5816: GPU sim: DataGeometry input node causing fallback to cpu
  • Fixed #5956: GPU sim: Instant crash in compiler when using 'shape.type()' in a GPU layer
  • Fixed #6152: GPU sim: Shape sphere: Ignores shape rotations.
  • Fixed #6151: GPU sim: Shape 'sampleNormal' does not properly take into account shape transforms for most shape types
  • Fixed #6150: GPU sim: Shape sampler ellipsoid: Sampling normals falls cause a shader compile-error and falls back to CPU sim
  • Fixed #6149: GPU sim: Shape sampler cylinder: Normals sampled in 'surface' mode with a nonzero inner-radius are messed-up and randomly flipped
  • Fixed #6148: GPU sim: Mesh sampler: sampled normals are incorrectly scaled by mesh scale.
  • Fixed #6147: GPU sim: Shape sampler ellipsoid: Normals are incorrect when ellipsoid scale is not uniform
  • Fixed #6145: GPU sim: Shape sampler cylinder: Instant crash at graph compile time / baking, when sampling normals.
  • Fixed #6141: GPU sim: Cone volume sampling is broken, samples a pseudo-cylinder
  • Fixed #6140: GPU sim: Cylinder volume sampling reverses parametric coordinates X and Z coordinates, making it incompatible with CPU sim & other pcoords manipulation functions
  • Fixed #6139: GPU sim: Cone volume sampling uses broken parametric coordinates layout, incompatible with CPU sim & other pcoords manipulation functions
  • Fixed #6137: GPU sim: shape.buildPCoords* functions & nodes are not supported, and fallback to CPU sim
  • Fixed #6131: GPU sim: Cone sampling fallsback to CPU
  • Fixed #6130: GPU sim: Sampling a mesh coming from an inline property emits incorrect compute shader code, fails compiling & falls back to CPU
  • Fixed #6068: GPU sim: Random crashes when editing layer
  • Fixed #6060: GPU sim: Texture sampler ignores 'linear' filter flag, always samples as point
  • Fixed #5710: GPU sim: using modulo with integers make the layer fallback on CPU when shaders are compiled with /WX
  • Fixed #5589: GPU sim D3D11: Release assert on AMD cards
  • Fixed #6127: GPU sim D3D11: Sampling anything other than 'Position' from a mesh is broken
  • Fixed #6063: GPU sim D3D11: Sampling BGRA4 textures cause runtime conversion & fallback to BGRA8 on load even if HW supports it.
  • Fixed #5957: GPU sim D3D11: Instant crash when sampling a texture defined through a template property
  • Fixed #5532: GPU sim D3D12: particles don't spawn correctly with "complex" effect instancing


  • #5591: Lit and tinted distortion material
  • #3754: Add CameraSortOffset property for sorted particles as an additional sorting override
  • #6426: GPU mesh particles
  • #5675: Editor PostFX: Add FXAA
  • #5009: Editor PostFX: Add vignetting post-effect
  • #5830: Editor PostFX: Add dithering postFX
  • #5527: Materials: All .pkma files should now have a valid .frag/.vert shader path
  • Fixed #5813: Mesh renderers vertex color alpha isn't taken into account in material shaders
  • Fixed #5705: Renderer's DrawOrder property cannot be auto-exported
  • Fixed #5360: Materials: Atlas_SubUVs is not visible to shaders
  • Fixed #5017: Capsule aligned billboards: Incorrect 'Size' value, incoherent with other billboarding modes: the 'Size' value should be the width/height, but is used as the diagonal
  • Fixed #5773: Renderers: Wiring a float in the 'Enabled' pin produces a compile error
  • Fixed #6006: White editor viewport when having a triangle renderer and the billboarding-mode is geom-billboarding
  • Fixed #5869: Buggy lighting when pausing and 'FreezeBillboardingWhenPaused' is checked


  • #5933: Login: Remember password when checking 'RememberMe'
  • #5386: Baked effect memory usage inspector
  • #6201: Editor baking: Allow seeing bake errors or warnings when baking from editor.
  • #5812: Ability to resave a list or all effects and templates from a project
  • #6225: "Help" menu: Add an "Advanced" entry allowing to reveal both the editor logfile, and the AppData folder, in an explorer window
  • #5768: Allow to disable corelib sim interfaces per-project, and add 'experimental' category in project settings to expose opt-in new features in early-access
  • #6213: User settings: External Applications: Add missing asset types
  • #5824: Editor: add AfterEffects project preset in project creation dialog
  • Fixed #5587: No user feedback on what the editor is doing when opening a project, sometimes freezes for tens of seconds, sometimes not. Now shows a progress window when it isn't instant.
  • Fixed #5862: Editor has very poor reporting when a file has been corrupted and fails to load it
  • Fixed #6220: External applications (windows): Editor auto-detection sees some extensions as not openable, when in fact they are
  • Fixed #6219: External applications: Bad handling of unicode when displaying application pretty name in editor menus
  • Fixed #6199: Static effect dependency report: Static dependencies are not reported with the proper asset type
  • Fixed #6197: Some editor operations that process effect files (such as replacing dependencies or renaming public templates) will pop load error dialog for every effect in the project which has load errors.
  • Fixed #6188: .pkcf files which have been autosaved do not appear in recovery list
  • Fixed #6356: Project launcher: Double-clicking on a project with a higher minor version, with no more recent editor build installed, will still open the project, despite the editor UI saying it can't be opened.
  • Fixed #6355: Project launcher: Double-clicking on a project should open the project with the current editor version if it's a more recent _patch_ than what the project is set to
  • Fixed #5934: User settings file: Incorrectly reloaded when revision ID changes (between patches), always reuses the first one in the list when listing all settings file in the directory

Effect editor

  • #1143: Implement File > SaveAs
  • #5486: Scene properties panel: Display as backdrops treeview
  • #5348: Update backdrop transforms using gizmo
  • #5385: Asychronous graph compilation (disabled by default in 2.8.0, will be enabled by default in 2.8.1. Can be controlled in the effect editor preferences)
  • #5609: Add 'Capture static bounds' option
  • #5608: Add a way to visualize the effect's static bounds
  • #5706: New renderers summary panel allowing to view renderers used in the effect and how they are batched
  • #5658: Script editor: When pasting text, replace unicode math characters with their valid equivalents in PK-Scripts
  • #5656: Script editor: Detect unsupported unicode characters such as '−', '×', which can happen when copy/pasting formulas from a website, and give a more comprehensible error to the user.
  • Fixed #5657: Script editor: Incorrect error highlighting placement when script contains unicode characters
  • #5294: Debugger: add buttons and shortcuts to select the next and previous particle
  • #5925: Grid should be double-sided by default
  • Fixed #5882: Texture sampler: Broken sRGB conversion on-load.
  • Fixed #5488: Effect treeview: Clicking on the root node should display the global effect properties.
  • Fixed #5855: Color picker: Hitting 'enter' in an inputbox should not validate & close the window, it should validate only the inputbox.
  • Fixed #5852: No way to specify procedural atlas in texture node, "U * V" atlas specification only possible in renderer nodes / materials.
  • Fixed #6062: Samplers with empty paths get constant-folded in shipping only. Prevents some layers to be dispatched on the GPU sim in-editor.
  • Fixed #5955: Simulation runtime warning messages in viewport only last one frame, very hard to read


  • #5740: Allow resetting properties which are frozen by pin-rules
  • #5671: Remember which categories have been expanded or collapsed
  • #5650: Improve UI of node output pins: Allow auto-exporting output pins + display the regular "eye" icon to toggle visibility
  • #6200: Allow opening an asset by Ctrl+clicking on its preview thumbnail

Graph compiler & optimizer

  • #5857: Samplers: Add 'NeverOptimize' option on node, to skip ICB/CFL optimizer passes used on static sampler
  • Fixed #5396: VRP: Cannot propagate ranges of bitwise ops when input ranges are constant (editor-only)
  • Fixed #5286: VRP: rgb2hsv() and hsv2rgb() have poor handling of output ranges
  • Fixed #5283: VRP: 'blackbody()' function has incorrect output range of [0, +inf], instead of [0, 1]
  • Fixed #5281: VRP: No handling of functions tan(), asin(), acos(), atan(), and atan2()
  • Fixed #5284: Optimizer: ICB: Various missed optimizations
  • Fixed #6072: Optimizer: Fails to properly collapse some redundant xform calls
  • Fixed #5853: Image sampler: Optimizer crash when 'remapDensity' is called with a non-constant filter mode
  • Fixed #6036: Compiler: VRP of % operator is broken for floats
  • Fixed #5791: Constant sampler folding in shipping doesn't work when sampler is defined via a property
  • Fixed #5799: Texture 'sampleDensity' or 'remapDensity' calls are not optimized-out when the texture is empty and the filtering is set to 'point'
  • Fixed #5802: 'remap' function: Incorrect handling of 'int' inputs
  • #5285: CPU VM backend: strength reduction pass: Detect & simplify `select(0, x, b32)` to `and(x, b32)`

Plugins & Third-Party

UE4 plugin

  • #4060: UE4: Chaos integration
  • #6335: UE4: CollisionFilters system rework
  • #6336: Editor: Add UE4 collision filters when creating a UE4 project

Lumberyard plugin

  • #5899: LY: Attribute Categories
  • Fixed #5715: LY: Crash when using custom mesh materials with material groups
  • Fixed #5798: LY: Cannot start effect if the attribute sampler is not overriden
  • Fixed #5788: LY: Crash when quitting game mode with an effect sampling parametric coordinates
  • Fixed #6331: LY: crash after e_particlesQuality change
  • Fixed #6330: LY: Sounds doesn't stop
  • Fixed #5841: LY: Show/Hide entity in treeview doesn't work
  • Fixed #5749: LY: Attributes with Color semantic should be editable using a color picker
  • Fixed #6224: LY: mesh override not woking with opacity
  • Fixed #5893: LY: Audio trigger doesn't stop after exiting game mode
  • Fixed #6004: LY: Effect movement lag on fast camera movement
  • Fixed #6025: LY: e_particles shouldn't disable PopcornFX particles

After-effects plugin

  • #5960: AE: Added Reimport button in emitter interface to hotreload effects
  • Fixed #5838: AE: Reloading Fx doesn't refresh it if new version is available


  • Fixed #6215: Some upgrades do not properly process files in projects where all paths are forced to lowercase or uppercase
  • New upgrader @ User settings: Renamed various properties
  • New upgrader @ Layer nodes: All layers must now have their sub-graphs be of class 'event'
  • New upgrader @ Unify meaning of 'Size' property between capsule billboards and other billboard types
  • New upgrader @ Transformed 'Scene' panel into a backdrop treeview: Split scene settings into backdrop objects
  • New upgrader @ All feature-set files (.pkma) must now have a non-empty .frag path
  • New upgrader @ Unified backdrop 'Enabled' properties
  • New upgrader @ Removed legacy static bounds properties
  • New upgrader @ Collision node improvements
  • New upgrader @ Remove generic 'Data' data-type in nodegraph nodes
  • New upgrader @ CoreLib template improvements: orientation.fromAxisAngle
  • New upgrader @ Move 'DrawOrder' into 'Transparent.GlobalSortOverride' material property
  • New upgrader @ Texture node: Add ability to specify a procedural UxV atlas
  • New upgrader @ Multiplier node: Added 'SpawnCountRandom' property
  • New upgrader @ User settings: Updated settings
  • New upgrader @ Node property renames
  • New upgrader @ Effect backdrop: Now off by default if the grid size is 1x1
  • New upgrader @ Backdrop: Renamed properties
  • New upgrader @ Corelib sim interface renames
  • New upgrader @ CoreLib template renames, cleanups, and uniformization
  • New upgrader @ Add new Core Shader Particle_Master.frag
  • New upgrader @ Per effect instance time-scale: Replaced 'self.isDeterministic' by 'sim.isDeterministic'
  • New upgrader @ CoreLib template renames

Content examples update

New "Tutorials" effects

Event Multiplier node LOD controls
New LOD controls for the EventMultiplier node