PK-Editor v2.18

From PopcornFX
Jump to navigation Jump to search

Back to anouncements
Released Sep 19th 2023.
Make sure you upgrade your runtime / plugins as well before switching to this version.

Release highlights

Tube Ribbons Multi-plane Ribbons New Corelib nodes
Tube Ribbons Multi-plane Ribbons New Corelib nodes

PopcornFX 2.18 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: UE4 & UE5 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.18.2.19155_x64.exe (Latest) NewIcon.png
PopcornFX-Editor_v2.18.2.19155_x64.pkg (Latest) NewIcon.png
PopcornFX-Editor_v2.18.2.19155_x64.tgz (Latest) NewIcon.png

Changelog 2.18.2

Builds (Nov 30th 2023)

  • Fixed #13034: GPU Sim D3D12: fix timing queries
  • Fixed #12984: CPU simulation: Optimize some frequently used swizzle instructions: .x00, .0x0, .00x, .000x, .111x, .xyz0, .xyz1 -> 4x faster than before
  • Fixed #13036: Vector-field importer: Add option to force a specific value on all vector-field borders (for example zero), helps to make particles outside the VF bounds to not be affected by the field
  • Fixed #12212: UnrealEngine: Use UE's task graph by default
  • Fixed #13025: AE: Set Default position of mesh backdrop to emitter position
  • Fixed #13018: AE: Mesh backdrop transform are not updated correctly when 'Enable Collision' is on
  • Fixed #13016: AE: Add EffectCallGeneric support to get additionnal information about an emitter
  • All v2.15.16 LTS fixes:
    • Fixed #13007: builtin time & dt values at spawn have incorrect sub-frame values, causes visual glitches & holes in particle jets that should have been smooth
    • Fixed #12981: Mesh viewer: KdTree & UV2PC infos in memory viewer panel are incorrect when mesh has LODs for LODs > 0, always displays the LOD0 values
    • Fixed #12992: UnrealEngine: Random crash when material gets destroyed while effect is still running
    • Fixed #12986: Unity: Color attributes have wrong values in the color picker
    • Fixed #13008: Unity: Null reference exception if the distortion renderer have an invalid material
    • Fixed #12974: Unity: Null reference exception when material factory have invalid entries
    • Fixed #12988: Unity: fix crash on mesh renderer dependencies missing
    • Fixed #13033: Unity: use material override to support more blending modes
    • Fixed #13005: Unity: Opaque billboards ignore vertex color alpha
    • Fixed #12991: O3DE: Particles does not render in release build
    • Fixed #13003: O3DE: doesn't compile with ScriptCanvas 2.0.0 changes

Changelog 2.18.1

Builds (Oct 26th 2023)

  • Fixed #12927: Rendering: Inaccurate geometry for GPU tube ribbons.
  • Fixed #12894: Rendering: Tube ribbon normals are flipped when axis system is Left-handed
  • Fixed #12952: Incorrect ICB optimization when chaining a multiplication and a comparison
  • Fixed #12902: Editor: selected/debugged tube & multiplane ribbon particles are incorrectly drawn in red
  • Fixed #12960: lag when editing a curve in a layer that contains lot of nodes
  • Fixed #12884: Documentation generator: Does not list the attributes exposed by a graph anymore
  • Fixed #12662: Memory inspector: Leaks memory
  • Fixed #12944: O3DE: Invalid hash for linux arm64 package
  • Fixed #12925: AE: Effect will fail to bake when the PopcornFX project is using 'Root Dir' option
  • #12943: Drop iOS 32bit support
  • All v2.15.15 LTS fixes:
    • Fixed #12931: Geometry artifacts with ribbons caused by deferred payloads.
    • Fixed #12247: UnrealEngine: Crash when world partitioned level is unloaded and it contains a PopcornFXSceneActor automatically created
    • Fixed #12953: Unity: Emitter has incorrect transforms if PlayOnStart is false and the emitter is moved between Start() and StartEffect()
    • Fixed #12950: Unity: SampleEffect ParallaxRaymarch & Raymarch crashes when played in Unity
    • Fixed #12945: Unity: Emitter instances of the same effect share attributes
    • Fixed #12933: Unity: dynamic batching can break render of particles.
    • Fixed #12929: Unity: Billboards with emissive color don't render correctly

Changelog 2.18.0

Builds (Sep 19th 2023)

Templates & Corelib

  • #12700: Add a new 'Ticker' template that ticks every 'n' seconds, and outputs a bool value that's 'true' on the frames where the tick happened
  • #12698: Add a 'StoreIf' node that keeps track of a value from one frame to the next and can update the value based on an input condition
  • #12695: Add a 'randpick' node that allows picking between multiple values, like the 'EventRandPick' node for events
  • #12776: Add a 'randswitch' node, does the reverse of 'randpick'
  • #12777: Rename 'EventRandPick' to 'EventRandSwitch' to unify switch/pick namings
  • #12778: 'randpick' node: allow overriding the [0, 1[ random cursor used to pick the value by a cusom value.
  • Fixed #12793: 'ShapeProperties' node does not expose shape min & max bounds
  • Fixed #12772: Physics node's 'VectorFieldSampleMode' does not behave as expected when set to 'Localspace'
  • Fixed #12701: Timer node uses 'scene.dt' and doesn't allow using 'effect.dt' instead
  • Fixed #12896: 'OrientationFromPosition' node is extremely unstable.
  • Fixed #12878: orientation.fromForwardUp returns orientation with the backward axis
  • Fixed #12826: Collision node: Using the 'EventCollide' event without using the 'ContactSurfaceType' payload in one of the child layers triggers a compiler info message saying the payload is unused

Simulation & Rendering

  • #12720: Rendering: Tube & Multi-plane ribbons
  • #11159: GPU sim: improve CPU->GPU newborns upload performance when layers have GPU spawn
  • #12751: GPU sim: Improve implementation of reverse_bits by using the proper intrinsic when available
  • #12748: Add new sim.wave.size() function, allowing to access the size of the current wave
  • #12741: Add new id) function, allowing to access the element at a specific local ID in the current simulation wave
  • #12743: Add a permute script builtin, which allows doing "dynamic swizzles": takes an integer vector containing indices, and uses it to lookup the input vector
  • #12742: Add a "switch" routing node, that does the reverse of 'pick' (the old 'switch' node), that outputs 'n' bool outputs, to be used to enable a specific renderer or node out of a list of nodes, based on an integer input
  • Fixed #12846: Curve attribute samplers that have more than 1 dimension cannot be properly sampled inside the graphs
  • Fixed #12880: GPU sim: Using most of the Shape.axis*() accessors cause the simulation to fallback to CPU if they cannot be expanded as constants during compilation (visible when using attribute samplers)
  • Fixed #12831: GPU sim: implement shape.position for Mesh sampler
  • Fixed #12841: MeshSample node used in a GPU layer with an attribute-sampler mesh causes sim to fallback to CPU because shape.type() is not implemented on GPU

Graph Compiler & Optimizer

  • #12670: Compiler: Improve exec frequencies to minimize the work done in higher-frequency sections of the graph
  • #12790: Optimizer: ICB pass: Combine redundant wave-wide boolean/bitwise ops
  • #12789: Optimizer: ICB pass: Expand 'sim.wave.sum(x)' into 'sim.wave.size_active() * x' when 'x' is not a per-particle value, but instead a per-wave or constant value.
  • #12716: Optimizer: replace consecutive 'min()' / 'max()' instructions to a single more efficient 'clamp()' instruction
  • #12714: Optimizer: Replace expressions of the form iif(a < b, a, b) or select(a, b, b < a) by the more efficient min(a, b), same for max(a, b).
  • #12808: Optimizer: remove redundant compares that are combined
  • #12704: Curve optimizer: Replace step curves by 'select' chain when number of control-points is low enough
  • Fixed #12797: Optimizer: VRP optimization leads to wrong evaluation of % operator

Nodal editor

  • #12703: Template treeview: Display local/public indicator on items of the template treeview
  • #12710: Nodal editor: Display localspace/worldspace status in pin & wire tooltips
  • #12775: Unify switch/pick namings: rename 'switch' builtin node to 'pick'
  • Fixed #12705: Nodal editor: Wires don't properly snap to pins when the pins are 'auto' with a type-mask
  • Fixed #12883: Exporting a sampler/resource node as a property from the right-click menu incorrectly adds an '_1' suffix to the name if there is an attribute with the same name used in the layer

Effect editor

  • #12628: Undo stack: Display point of last save

Editor (General)

  • #12827: Project settings: Allow specifying a list of paths or regexps the asset-picker should ignore when displaying the list of available assets
  • #12817: Project settings: Allow hiding default materials in project settings, when project has its own set of materials and the default materials shouldn't be used.
  • Fixed #12861: When detailed asset analysis is disabled, some asset pickers do not show anything
  • Fixed #12869: Content browser: When indexing animation assets for the first time, the asset details are not properly shown.

UnrealEngine plugin

  • #12900: UnrealEngine: drop UE5.0

Unity plugin

  • #12825: Unity: TransformUVs support for billboards, triangles and ribbons renderers
  • Fixed #12913: Unity: Crash with stored buffer size in the PKFXSettings
  • Fixed #12914: Unity: Invalid geometry generated for billboards in debug

All v2.17.5 fixes

Unity plugin

  • 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

  • #12462: Linux ARM64 support
  • Fixed #12870: Crash when disabling or deleting nodes that are inside a circular-dependent graph
  • Fixed #12866: Editor on MacOS: 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'

UnrealEngine plugin

  • Fixed #12875: UnrealEngine: Plugin does not compile when project's IncludeOrderVersion is set to a specific unreal version (i.e. EngineIncludeOrderVersion.Unreal5_3)

O3DE plugin

  • Fixed #12891: O3DE: crash when using broadcast node
  • Fixed #12890: O3DE: Incorrect resource mesh path on bake

Unity plugin

  • Fixed #12871: Unity: Optimize Vulkan render api data.