PK-Editor v2.4

From PopcornFX
Jump to navigation Jump to search

Back to anouncements
Released Jan 30th 2020. (preview-1 released Jan 20th 2020)
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

Animtrack backdrop to preview moving effects Curve presets in curve editor Cubemap backdrop for IBL/PBR Ungroup templates/subgraphs
Animtrack backdrop to preview moving effects Curve presets in curve editor Cubemap backdrop for IBL/PBR Ungroup templates/subgraphs


64-bits Windows build MacOS build Linux-64 build
PopcornFX-Editor_v2.4.2.62029_x64.exe (Latest) NewIcon.png
Not yet available
PopcornFX-Editor_v2.4.1.61876_x64.pkg [Experimental] (Latest) NewIcon.png
PopcornFX-Editor_v2.4.0.61629_x64.pkg [Experimental]
Not yet available
PopcornFX-Editor_v2.4.1.61876_x64.tgz (Latest) NewIcon.png

Plugin status

Changelog 2.4.2 patch

Builds (Feb 12th 2020)

  • Fixed #4163: Ribbon: flat normals
  • Fixed #4130: Mac: mcpp default path and redist executable are wrong
  • Fixed #4129: Mac editor stores 2.2 version instead of current
  • Fixed #4198: Default attribute values are lost when upgrading a 2.2 project to 2.4
  • Fixed #4179: Effect editor: Opening external graph doesn't restore window if already opened and minimized
  • Fixed #4171: Attribute "exported event" doesn't create any attribute
  • Fixed #4164: AnimTrack backdrop: Orientations seem to not be correctly interpolated
  • Fixed #4139: AnimTrack backdrop: Glitches when seeking backwards
  • Fixed #4174: Material editor: When doing modifications in the material editor window, accumulates shader compilation tasks indefinitely
  • Fixed #4168: Material editor: When closing the window while async shader compiles are in-flight, freezes the UI until they all finish
  • Fixed #4094: MoveTemplateToFile: Breaks refs of existing templates
  • Fixed #4178: Content browser & nodal editor tooltips: compilation message lists displayed are unbound. if there are 1000 messages, the tooltip will try to display all 1000 messages and go off-screen
  • Fixed #3992: Unity: PS4 Implement multibuffering for rendering

Changelog 2.4.1 patch

Builds (Feb 12th 2020)

  • Fixed #4107: Creating new project is extremely slow, editor UI freezes for ~20-30 seconds
  • Fixed #4092: Material editor: crash when selecting a shader using the asset picker
  • Fixed #4095: Material editor: removing rendering features doesn't refresh the property grid
  • Fixed #4096: Material editor: invalid shader compilation error count when Material Editor setting have "Enable compilation" disabled
  • Fixed #4111: Material editor: Metal-specific keywords are not registered
  • Fixed #4073: Material editor: Huge editor UI stall when launching async shader compilation
  • Fixed #3988: Density sampling in linear mode in a deterministic layer produces artifacts where some samples are clumped together
  • Fixed #4141: Density sampling in deterministic layers is sometimes deterministic, sometimes not
  • Fixed #4047: Nodal editor: Using the same "Payload Kind" several times in the same event wire does not trigger override warning
  • Fixed #4134: Nodal editor: Selecting spatial layer nodes pop asserts in propertygrid shows spatial layer & payload inputs and allows to change their type, which breaks graph compilation
  • Fixed #4135: Nodal editor: Compiler messages are not refreshed in graph when changing compilation options
  • Fixed #4136: Nodal editor: 'bool' payloads are always seen as not used by child layers
  • Fixed #4099: Nodal editor: Crash when pasting v1 shape sampler into v2 nodal editor
  • Fixed #4087: Spatial Insertion in a template doesn't work
  • Fixed #4146: Trigger node: 'PulseAt' pin expects values in the [0,1] range, sending values outside that range will cause glitches and break the event in subtle ways.
  • Fixed #4113: Event payload does not work with a Link node without default value plugged
  • Fixed #4050: Restoring the backup of a template file in-use by an opened effect editor freezes the editor.
  • Fixed #4038: AnimTrack backdrop: Ignores timeline seeking
  • Fixed #4040: Asset picker widget always goes back to the last directory browsed
  • Fixed #4093: MoveTemplateToFile: Does not patch template refs when target file becomes local file
  • Fixed #4138: Audio files with filenames containing special unicode characters do not load & playback properly
  • Fixed #4069: GPU sim: Effect instance transforms are incorrect when particles are transformed at evolve
  • Fixed #4137: GPU sim: 'fracSign', 'wavetri', and 'rcp' cause GPU simulation kernels to fail compiline, and cause fallback to CPU sim
  • Fixed #3830: GPU sim (d3d11): Seeking backward in the timeline (with a large dt) totally breaks the effects
  • Fixed #4126: GPU sim: death notifier not called at death of instance effect
  • #4112: Can now create attribute sampler nodes directly from the node creation dialog
  • Fixed #4114: Crash when using Opaque_Ribbon material and slicing is activated
  • Fixed #4125: Upgrader: Incorrect project version written when an upgrade fails
  • Fixed #4132: Upgrader: When an upgrade fails due to file write permissions, the project version gets set to the final version instead of the version of the last successful upgrade
  • Fixed #4124: Upgrader: In mixed v1/v2 projects, the upgrader fails when v1 files are not writeable
  • Fixed #4128: Rendering interface: Creating new rendering feature properties does not setup CategoryName correctly
  • Fixed #4143: Renderers: Properties with a 3D-Coordinate semantic are not axis-system independent when edited inline in the propertygrid (ex: 'Position', 'Scale', ...)
  • Fixed #4133: Content browser: Some cubemap thumbnails do not appear
  • Fixed #4150: New projects do not contain .dds textures as a supported extension
  • Fixed #4085: AssetBaker: Allow baking to output directory without directory structure
  • Fixed #4129: Mac editor Stores 2.2 version instead of current
  • Fixed #4130: Mac editor: mcpp default path and redist executable are wrong
  • Fixed #4161: Mac editor has invalid minimum system version: 10.14.4, while PopcornFX Editor is compatible with 10.15.3 and up (Due to Qt 5.12)
  • Fixed #3959: UE4: Blueprint containing emitter picks up TRASH attribute sampler component
  • Fixed #4156: UE4: D3D12 GPU sim texture attribute samplers are never unregistered
  • Fixed #4157: UE4: D3D12 GPU sim texture attribute samplers are not reloaded
  • Fixed #3984: UE4: Billboard renderers with an Atlas do not render correctly when billboarded in vertex shader, GPU simulated

Changelog 2.4.0

Builds (Jan 30th 2020)


New nodes and script functions

  • #3800: Add a new "static test" node to test if a value is a spawn or evolve value
  • #3832: Add script function 'self.wasKilled()' & corresponding helper node in template corelib
  • #3833: Add script function 'self.isDead()' & corresponding helper node in template corelib

Graph compiler & optimizer

  • #2681: Compiler: have reliable storage name while editing an effect, prevents simulation particle-count explosion when editing some effects, especially when using trails.
  • #3640: Optimizer: Add global-effect VRP optimization, propagating value-ranges across payloads and layers


  • #3356: LOD: Emitter bias: C++ integrations now have a per effect-instance control of LOD bias
  • LOD: Add script functions and corelib templates 'sim.lodDistanceMin()', 'sim.lodDistanceMax()', 'scene.lodDistanceMin()', and 'scene.lodDistanceMax()', to access the LOD distance metrics. The "sim" versions take into account the per-layer overrides of LOD metrics
  • #3349: Allow scaling in emitter transforms: requires to check the "Use Scale" checkbox in the various transform nodes (off by default)
  • Fixed #3824: self.kill() is unreliable with OnDeath tests
  • Fixed #3638: Mesh projection & sample distance field artefacts. Sometimes particles get reprojected at incorrect location (was quick-fixed in v2.3.3 to avoid an upgrader, this is the "proper" fix)
  • Fixed #2204: Create Node in recursion effect triggers massive particle spawn
  • Fixed #3852: Attributes: Naming attribute specific names can break graph compilation
  • Fixed #3902: Localized pages: Current heuristics can cause dramatic under-utilization of pages, leading to massive memory usage, and poor performance.

Simulation: GPU

  • #2821: GPU sim: Attribute samplers Curve & Image
  • Fixed #3965: GPU sim: vectorfield sampler function does not compile anymore, falls back to CPU sim
  • Fixed #3829: GPU sim (d3d11): some frames display no particles (particles flash on/off when spawning)
  • Fixed #3830: GPU sim (d3d11): Seeking backward in the timeline (with a large dt) totally breaks the effects
  • Fixed #3837: GPU sim (d3d12): D3D12 GPU sim image and rectangle list resource handlers cannot be overridden properly
  • Fixed #3856: GPU sim: incorrect implementation of xform, breaks localspace node


  • #3737: Distortion material for ribbons
  • #2829: Slicing: Improvements
  • #3855: SDK & Editor: Vertex shader billboarding for billboard particles (previously was either CPU or geometry-shader)
  • #2830: Rendering interface: Can now cleanly rename renderer interfaces, editor takes care of patching all references.
  • #2832: PBR / IBL: In-editor renderer now supports ambient cubemaps
  • #3554: Editor rendering settings: Add default "Auto" mode
  • #3414: Houdini Vertex Animation Textures (example available in the Houdini downloadable pack)
  • #3362: Houdini Impostor template (example available in the Houdini downloadable pack)
  • Editor rendering settings: Added new enum to select the billboarding method for billboard particles in editor's user rendering settings.
  • #2822: Feature-set editor: Shader build output logs
  • #3747: Feature-set editor: Shader permutation list display
  • #3502: Renderers: add a bool pin to enable/disable the renderer - step 2, performance improvements
  • Fixed #3783: Flipped tangents between geometry shader and cpu billboarded particles
  • Fixed #3710: Renderers: inconsistent pin rules for size/size2
  • Fixed #4046: Opaque materials for billboard and ribbon do not compile when LegacyLit is enabled
  • Fixed #3951: No error when assigning an incompatible material on renderer, or when material cannot be loaded


  • Fixed #3846: Editor shortcut panel: Resetting shortcut after binding 2nd keystroke combination always pops the shortcut conflict window, saying it conflicts with itself.
  • Various small performance improvements all over the board

Nodal editor

  • #1218: Nodal editor: Inline template/subgraph (reverse Ctrl+G)
  • #3574: Nodal editor: Move template to file
  • #3650: Nodal editor: Auto-inlined template nodes to create node "presets": added a bunch of default "color" nodes, just type "color" in the node creation popup to find them
  • #2795: Payload extract node: Add dropdown to select available payloads
  • #3354: Nodal editor: Improved template property & pin ordering when their order value collides: Use node's vertical coordinate to sort, allows for a much quicker and more natural ordering of properties.
  • Fixed #3850: Nodal editor: Creating a layer in the middle of an event link creates a passthrough layer but keeps its 'SetLife' node to 1 second: Should be 0 seconds
  • Fixed #3838: Nodegraph: Exporting texture sampler as attribute doesn't work
  • Fixed #3303: Creating script node by dragging a link doesn't properly name the created input/output pins
  • Fixed #3831: Payload extract node: "Ignore Warning Missing" property does not work as expected
  • Fixed #3892: Nodal editor: Infos / Warnings emitted by layergraph diagnostics from within layer templates are not visible in nodegraph.

Effect editor

  • #3577: Curve editor: Added curve presets
  • Effect editor: New "Storage" panel in graph details panels, allows to see the actual final memory layout used by particles from a specific layer.
  • #3358: Effect Editor: Added cubemap backdrop
  • #3588: Effect editor: Added animtrack backdrop, allows to preview effect in movement
  • #3834: Effect editor: Template treeview UX: When cloning a template, editor should insert it right below the original template, not at the end of the list, & should select it.
  • Fixed #3466: Timeline: Seeking breaks particle debugging by re-simming
  • Fixed #3841: IR Panel: Externals panel's rate dropdown is disabled when selecting any IR and switching back to the 'Final' IR
  • Fixed #3945: Propertygrid: Some cubemaps do not show-up in asset-picker preview
  • Fixed #3656: Propertygrid: Incorrect display of 1D textures in asset-picker preview
  • Fixed #3123: Effect treeview / Template shelf: Right click -> show dependencies on template is broken
  • Fixed #3859: Template create and rename allows to have two templates with the same name in an effect file
  • Fixed #3840: HUD profiler causes random editor crash after running a couple minutes.
  • Fixed #3910: Property grid: Wrong display of slider default value
  • Fixed #3936: Effect editor: Creating attribute node from node input pin doesn't retrieve semantic
  • Fixed #4043: Copy/paste of v1 curves doesn't work anymore

Content browser

  • #3605: Add "Recent Files" list in "File" menu
  • #3798: See file versions in details view
  • #3801: Right-click 'Upgrade' should upgrade the selected assets to the current build version unless they're more recent.
  • #3876: Add right-click menu to upgrade v1 FXs to v2


  • #1257: Upgrader : upgrade v1.x effects to v2.0, first experimental version (does not support all v1 evolvers)
  • Fixed #2902: Upgrader flaw: local un-upgraded files will skip missing upgrades when whole project is re-upgraded with a new upgrader
  • Fixed #3964: Command-line PK-Upgrader: Does not work with project settings files not named "PopcornProject.pkproj"
  • New upgrader @ v2.4.0.60087: Content browser: Add new column in the details view settings: 'FileVersion'
  • New upgrader @ v2.4.0.60098: Particle nodes: Renamed 'SimulationState' to 'ExecStage', and 'EvolveRate' to 'ExecFrequency'
  • New upgrader @ v2.4.0.60947: Effect files: Made backdrop & camera infos distance-independent (now stored internally as meters, takes into account project's unit-system)
  • New upgrader @ v2.4.0.61149: Template library: Renamed 'BillboardScreenControls' to 'Legacy_BillboardScreenControls'
  • New upgrader @ v2.4.0.61301: Lit/LegacyLit features: Separate 'NormalBendingFactor' from 'Lit' and 'LegacyLit' feature into a new 'NormalBend' feature
  • New upgrader @ v2.4.0.61327: Collision node: Renamed 'CollisionMask' to 'EnableCollisions'

Assets & core-lib

  • #3665: Template corelib: Removed Stretch property in BillboardScreenControl template as it's not axis consistent.
  • #3926: Template corelib: OnDeath node: Can now explicitly disable 'OnDeath' pulses when the effect has stopped.
  • #3956: Template corelib: Improved 'PlaySound' layer template
  • #3550: Template corelib: Improved 'Collision' template, SDKs can now override the collision & response part with custom C++ code via a simulation interface.
  • #4045: Template corelib: Expose localspace checkbox in 'Projection' template
  • #3899: Material corelib: Mesh "Lit" render-feature has totally pointless "NormalBendingFactor" property: Removed property from "Lit" feature, added new "NormalBend" feature which is only for billboards & ribbons



  • #3749: UE4: Vertex shader billboarding for GPU particles
  • #3751: UE4: Re-enable GPU sim for D3D12 API
  • #3853: UE4: Add support for D3D12 image samplers (GPU simulation)
  • #3854: UE4: Add support for D3D12 image attribute samplers (GPU simulation)
  • #3931: UE4: log level is incorrect: debug logs are not shown and error logs are shown as warnings


  • #3348: Unity: Add support for custom materials

Content examples update

New "HoudiniExamples" package

Vertex animation textures Vertex animation textures Simple impostors Impostors & Mesh LOD Animated impostors
Vertex animation textures: Example 1 Vertex animation textures: Example 2 Simple impostors Impostors & Mesh LOD Animated impostors

New "Tutorials" effects

Renderer 'enabled' pin Animtrack backdrop to preview moving effects Kill particles if outside a local volume Build effects for various platforms
Toggle renderers using 'enabled' pin Example effect to understand transformations Kill particles if outside a local volume Build effects for various platforms

New "Samples" effects

Particles projected on a static mesh
Particles projected on a static mesh

New "EditorCubemaps" package

Contains a bunch of preprocessed cubemaps suitable for use by the cubemap backdrop. Preprocessing stores a blurrier and blurrier version inside each mipmap level.

See the following files for more information:

  • Textures/Cubemaps/Readme.txt
  • Textures/Cubemaps/PopcornFX_FilteringCubemaps.txt

Pre-convoluted cubemaps