PK-Editor v2.3

From PopcornFX
Revision as of 16:04, 8 November 2019 by JBilalte (talk | contribs) (Created page with "Back to anouncements<br/> Released 08 Nov 2019<br/> '''#Plugin_status|make sure you upgrade your runtime / plugins as well before switching to this version...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Back to anouncements
Released 08 Nov 2019
make sure you upgrade your runtime / plugins as well before switching to this version.

Looking for version 1 of popcorn ? Go to the latest v1.x editor

Release highlights

Timeline backwards seeking & tweaking while paused Mesh atlases Builtin LOD & simulation update-rate throttling Mesh LOD using MeshID
Timeline backwards seeking & tweaks while paused Mesh atlases Builtin LOD & simulation update-rate throttling Mesh LOD using MeshID


64-bits Windows build MacOS build Linux-64 build
PopcornFX-Editor_v2.3.0.59192_x64.exe (Latest) NewIcon.png
PopcornFX-Editor_v2.3.0.59192_x64.pkg [Experimental] (Latest) NewIcon.png
PopcornFX-Editor_v2.2.4.59151_x64.tgz (Latest) NewIcon.png

Plugin status

Changelog 2.2.0

Builds (Nov 08 2019)


Editor & Runtime

  • #3306: New 'StaticVersionSwitch' node, and 'version' keyword in scripts, allowing to conditionally evaluate graphs based on platform build settings
  • #3410: Localized pages improvements
  • #3328: Simulation interfaces: Add compile-time builtin output 'IsBound' pin
  • #3343: Spatial queries: return 'HasData' pin
  • #3341: Spatial query call: Add 'closest2' query
  • #3045: Spatial query node: specify neighbor ID in 'closest' query through a pin to allow creating templates.
  • #3047: Spatial query call: Auto-deduce cache size based on final query calls, greatly improves performance in effects doing multiple closest-Nth queries
  • #3396: Spatial Layers: Add 'NeighborCount2' query
  • sim.wave reduction functions now support all vector types, not just scalars.
  • Backend panel: highlight lines based on hovered/selected nodes, and highlights nodes when hovering lines (both on CPU & GPU backends)
  • Backend panel: Now shows GPU compute-shader disassembly
  • 'frac' function now always returns values in the [0,1[ range. previous behavior is still available with 'fracSign'

Editor only

  • #3307: Add support for OpenEXR images (.exr / .hdr)
  • #2023: Billboard renderer: Can now be given a float2 size (currently has to be a different pin than the 'float' size pin, we'll be able to merge them in a future build)
  • #2736: Materials: Add opaque materials for ribbon and billboard particles (Solid / AlphaTest)
  • #3559: Materials: Add opaque / Masked material for mesh
  • #3026: Materials: Alpha Remap Mesh shader in editor
  • #3413: Materials: Add Motion Vectors Map as additional atlas blending mode for ribbon and billboard particles
  • #3414: Materials: Vertex animation textures
  • #3363: Materials: Ramp textures for color remap (diffuse and emissive)
  • #3361: Materials: Add new Emissive category with a map and color
  • #3411: Materials: Normalmap support for semi-transparent lit particles
  • #3569: Timeline: display editable keyframe time when selecting keyframes
  • #3435: Editor backdrops: Add option to disable collisions with grid & mesh backdrops
  • #3441: Editor backdrops: Add effect backdrop to automatically preview a grid of effect instances
  • #3527: 'auto' widget: Allow editing node properties & pins of type 'auto'
  • #3489: Nodal editor: Node creation menu: Numeric constant is now always be the first choice if the search box contains a numeric value.
  • #3262: Nodal editor: hide/highlight incompatible/compatible pins when dragging link
  • #2754: Nodal editor: Display renderer particles in wireframe when a renderer is hovered (requires enabling an option in the editor preferences)
  • Project launcher: Can now use 'F2' to rename projects from the project list
  • #3280: Content browser: Display upgrade logs in file analysis report
  • #3256: Content browser: Details view: Right-click "Export to spreadsheet" -> outputs a .CSV file containing all asset details of the current view
  • #2669: Content browser: Proper handling of read-only folders
  • #3232: Added a 'ResetUI' button, that resets all UI to the default


Editor & Runtime

  • Fixed #3046: Spatial query calls are unpredictably reordered by compiler & backend, breaks internal cache, leads to bad performance.
  • Fixed #3395: IFileSystem::MountPack has incorrect behavior when mounting the same physical path with two different virtual mount points
  • Fixed #3443: GPU backend name mangling is broken with attributes containing special characters
  • Fixed #3521: GPU sim 'rand' is not deterministic, implem was totally different from the one used on CPU, way slower, and consumed an awful lot of instructions.
  • Fixed #3173: Bounds of newborns are not taken into account: page bounds are degenerated on first frame, and lag 1 frame behind for newborns.
  • Fixed #2675: Export nodes' "LinkAndAttribute" mode is broken

Editor only

  • Fixed #1280: Nodal editor: Bad discretization paths displayed on script node outputs
  • Fixed #3567: Moving .frag and .vert files break materials
  • Fixed #3570: Timeline: Moving or deleting keyframes messes keyframe payload order in the propertygrid
  • Fixed #3571: Timeline: Modifying keyframes while paused doesn't update the effect (should behave like when tweaking attributes or other parts of the graph)
  • Fixed #3566: Incorrect packing rules applied for vec2 elements in Vulkan and OpenGL
  • Fixed #3563: SampleLib: Mesh renderers draw calls are not batched
  • Fixed #3578: Material editor saves shader content even if not allowed when prompted
  • Fixed #3429: Import package: Colliding assets not shown as colliding when corelib paths do not match, results in everything being overwritten by default without warning the user
  • Fixed #3345: Ctrl+click on a pin does not behave like cutting, or deleting nodes, or right-clicking > remove all links: Leaves dangling passthroughs
  • Fixed #3320: Online packages tab: "New version available" message only shown when pack is updated at the same version, not when there's a different version
  • Fixed #3271: Backdrop lighting colors are treated as linear and not sRGB, does not match the colors users setup.
  • Fixed #2740: Shape Preview doesn't update after Hot Reload
  • Fixed #2709: Input node: Switching from "Link" to "Property" does not refresh parent graph


Editor & Runtime

  • Binary effect file loading is between 16% and 25% faster compared to v2.2
  • Fixed #2851: Massive frametime spikes when storages have their page sizes resized
  • Optimizer: Added new optimization pass: Value-range propagation.
  • #3327: Optimizer: sim.wave functions: Remove calls when the input value is already @ wave-frequency
  • #3340: Optimizer: Spatial query call: Hook ICB transform to simplify query calls when possible
  • Fixed #3572: Compiler: Remove constant stores from final instructions executed during the sim
  • Fixed #3597: Unnecessary allocs & lots of wasted memory in CPU VM evaluation cache alloc & acquire logic
  • #2155: Optimizer: ICB shape.intersect and shape.intersectPCoords
  • #2985: geom bb cpu tasks: SIMDify indices generation
  • #1204: Attributes: SOA optimization in medium-collection
  • ... and many small improvements in the effect optimizer

Assets & core-lib

  • Fixed #3551: Template clamp vector returns 'nan' for vectors of 0 length
  • #3255: Texture sampler template: Add properties to flip input U and V coords: almost always want to flip V when building from position
  • #3305: VectorField sampler template: Add time input to be able to sample animated FGA files
  • Fixed #3121: Attractor template: Added 'localspace' checkbox & improved interface by adding pin rules and a dropdown
  • #3581: Renamed transparent rendering feature 'SortValues' into 'SortKey'
  • #2648: Billboards: Renamed Atlas "Source" enum elements from "Definition/Procedural" to "External/Procedural"
  • Fixed #2716: Collision template is an awful spaghetti mess
  • AssetBaker config: Removed "WholeEffectOptimizationPassCount", "Deterministic", "DeterministicSeed", and "RemoveUserDebug" properties, now goes through compiler switches "--geo-passes=<n>" (default=4), "--determinism" / "--no-determinism", "--determinism-mod=0x1234", and "--user-debug" / "--no-user-debug"
  • AssetBaker config: Can now override all nodegraph compiler optimization flags for each bake target using the 'CompilerSwitches' property of 'COvenBakeConfig_Particle'


  • Upgrader @ : Spatial layers: Exposed 'NeighborIndex' as a pin, and removed 'NeighborCacheSize' property, which is now auto-detected by the graph compiler
  • Upgrader @ : Spatial layers: Added 'HasData' output pin
  • Upgrader @ : Arithmetic nodes: Fix corrupted effects containing arithmetic nodes with both input pins having the same name
  • Upgrader @ : Renamed 'frac' function to 'fracSign', and added new 'frac' function that always returns in the [0,1[ range
  • Upgrader @ : Add new Core Materials 'Opaque_Billboard' and 'Opaque_Ribbon'
  • Upgrader @ : Editor Light-backdrop colors are now converted from sRGB to linear before being used for rendering.
  • Upgrader @ : Renamed some rendering interfaces:
    • Renamed 'CRHIRenderingFeature::UseUv' to 'CRHIRenderingFeature::UseUV'
    • Renamed 'CRHIRenderingFeature::UseMeshUv1' to 'CRHIRenderingFeature::UseMeshUV1'
  • Upgrader @ : Rendering interfaces: Add missing nodes
  • Upgrader @ : Nodegraph: Can now edit 'auto' properties: Added internal 'BaseType' property to pins.
  • Upgrader @ : Rendering interfaces: Rename Atlas "Source" enum elements from "Definition / Procedural" to "External / Procedural"
  • Upgrader @ : Rendering interfaces: Rename transparent "SortValues" pin to "SortKey"
  • Upgrader @ : Attributes: Renamed effect interface item properties to match attribute node properties
    • Renamed 'AttributeName' to 'ExportedName'
    • Renamed 'AttributeType' to 'ExportedType'
    • Renamed 'AttributeDescription' to 'Description'
    • Renamed 'AttributeCategoryName' to 'CategoryName'
    • Renamed 'AttributeSemantic' to 'Semantic'



  • Fixed #3462: UE4: asserts/error logs when importing an effect using a shape sampler
  • #3353: UE4: Implement vertex shader billboarding
  • #3352: UE4: In engine performance metrics