Back to anouncements
Released Sep 19th 2023.
Make sure you upgrade your runtime / plugins as well before switching to this version.
- 1 Release highlights
- 2 Download
- 3 Changelog 2.18.1
- 4 Changelog 2.18.0
- 4.1 Templates & Corelib
- 4.2 Simulation & Rendering
- 4.3 Graph Compiler & Optimizer
- 4.4 Nodal editor
- 4.5 Effect editor
- 4.6 Editor (General)
- 4.7 UnrealEngine plugin
- 4.8 Unity plugin
- 4.9 All v2.17.5 fixes
- 4.10 All v2.15.14 LTS fixes
|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:
- UnrealEngine: Unreal Engine plugin codebase, Content Examples
- Unity: Unity plugin codebase, Content Examples
- O3DE: O3DE plugin codebase, Content Examples
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|
Builds (Oct 26th 2023)
- UnrealEngine Win/Linux/Mac: UnrealEngine_PopcornFXPlugin_2.18.1_Win64_Linux64_Mac64.7z
- UnrealEngine iOS/Android: UnrealEngine_PopcornFXPlugin_2.18.1_iOS_Android.7z
- Unity Win/Linux/Mac/iOS/Android: Unity_PopcornFXPlugin_v2.18.1_Win_Linux_MacOS_Android_iOS.zip
- Unity Win/Linux/Mac: Unity_PopcornFXPlugin_v2.18.1_Win_Linux_MacOS.zip
- Unity URP: UnityURP_PopcornFXPlugin_v2.18.1.zip
- Unity HDRP: UnityHDRP_PopcornFXPlugin_v2.18.1.zip
- AfterEffects Win: AfterEffects_PopcornFXPlugin_v2.18.1_Win64.exe
- AfterEffects Mac: AfterEffects_PopcornFXPlugin_v2.18.1_Mac64.pkg
- O3DE Gem Win/Linux/Mac: O3DE_PopcornFXGem_v2.18.1_Win64_Linux64_LinuxARM64_Mac64.zip
- 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
Builds (Sep 19th 2023)
- UnrealEngine Win/Linux/Mac: UnrealEngine_PopcornFXPlugin_2.18.0_Win64_Linux64_Mac64.7z
- UnrealEngine iOS/Android: UnrealEngine_PopcornFXPlugin_2.18.0_iOS_Android.7z
- Unity Win/Linux/Mac/iOS/Android: Unity_PopcornFXPlugin_v2.18.0_Win_Linux_MacOS_Android_iOS.zip
- Unity Win/Linux/Mac: Unity_PopcornFXPlugin_v2.18.0_Win_Linux_MacOS.zip
- Unity URP: UnityURP_PopcornFXPlugin_v2.18.0.zip
- Unity HDRP: UnityHDRP_PopcornFXPlugin_v2.18.0.zip
- AfterEffects Win: AfterEffects_PopcornFXPlugin_v2.18.0_Win64.exe
- AfterEffects Mac: AfterEffects_PopcornFXPlugin_v2.18.0_Mac64.pkg
- O3DE Gem Win/Linux/Mac: O3DE_PopcornFXGem_v2.18.0_Win64_Linux64_LinuxARM64_Mac64.zip
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 sim.wave.at(int 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
- #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
- #12628: Undo stack: Display point of last save
- #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.
- #12900: UnrealEngine: drop UE5.0
- #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
- 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'
- Fixed #12875: UnrealEngine: Plugin does not compile when project's IncludeOrderVersion is set to a specific unreal version (i.e. EngineIncludeOrderVersion.Unreal5_3)
- Fixed #12891: O3DE: crash when using broadcast node
- Fixed #12890: O3DE: Incorrect resource mesh path on bake
- Fixed #12871: Unity: Optimize Vulkan render api data.