PK-Editor v2.4
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
Contents
Release highlights
![]() |
![]() |
![]() |
![]() |
Animtrack backdrop to preview moving effects | Curve presets in curve editor | Cubemap backdrop for IBL/PBR | Ungroup templates/subgraphs |
Download
64-bits Windows build | MacOS build | Linux-64 build | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
Plugin status
- UE4 plugin status : Available for v2.4.4
- Unity plugin status : Privately available for v2.4.4 (contact us)
Changelog 2.4.4 patch
Builds (Mar 26th 2020)
- Windows: PopcornFX-Editor_v2.4.4.63014_x64.exe
- macOS: PopcornFX-Editor_v2.4.4.63014_x64.pkg
- Linux: PopcornFX-Editor_v2.4.4.63014_x64.tgz
- Fixed #4381: Spatial layers: Baking an effect that uses different spatial layers with the same properties merges the spatial layers together, even though they have a different name
- Fixed #4342: v1 -> v2 upgrader is broken
- Fixed #4365: GPU sim: Crash when layer has no renderer or outgoing event, OR when a layer has no evolve nodes
- Fixed #4358: Mesh importer: Always marks the asset as needing save if the asset has no .pkcf file
Changelog 2.4.3 patch
Builds (Mar 5th 2020)
- Windows: PopcornFX-Editor_v2.4.3.62448_x64.exe
- macOS: PopcornFX-Editor_v2.4.3.62448_x64.pkg
- Linux: PopcornFX-Editor_v2.4.3.62448_x64.tgz
- Fixed #4259: Mesh sampler: Sampling velocity in 'vertex' mode is broken
- Fixed #4255: Changing the default value of an attribute or export-input node doesn't flag the effect as modified.
- Fixed #4110: Material editor: Changing the min/max or default value of a rendering feature property does not flag the file as modified
- Fixed #4167: Material editor: Crash when changing some properties while shader compiles are pending
- Fixed #3470: Nodal editor search: Keep Ctrl+F search across multiple nodal editor panels.
- Fixed #4195: Nodal editor: Crash when Crtl+X on a group of nodes that contains a passthrough.
- Fixed #4267: Toggling node off/on will sometimes cause compile errors which cannot be solved by anything else than reopening the effect
- Fixed #4091: Effect editor: Ctrl+S does not write file if there are no changes to save
- Fixed #4256: Attribute panel displays attributes with scary red conflict error background even for legit mismatches
- Fixed #3894: Layergraph payload optimizer does not converge anymore, hits max iteration counts, makes effect compilation slower.
- #4149: UE4: Fixed 'PK_ASSERT(!SelfSceneIsRegistered())' when assigning a different effect to an effect instance in level
- #4274: Unity: URP Shader supporting mesh color per instance
Changelog 2.4.2 patch
Builds (Feb 24th 2020)
- Windows: PopcornFX-Editor_v2.4.2.62130_x64.exe
- macOS: PopcornFX-Editor_v2.4.2.62130_x64.pkg
- Linux: PopcornFX-Editor_v2.4.2.62130_x64.tgz
- Fixed #4198: Default attribute values are lost when upgrading a 2.2 project to 2.4
- Fixed #4163: Ribbon renderer: Normals are not interpolated and cause faceted shading
- Fixed #4168: Material editor: When closing the window while async shader compiles are in-flight, freezes the UI until they all finish.
- Fixed #4174: Material editor: When doing modifications in the material editor window, accumulates shader compilation tasks indefinitely
- 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 #4200: Content Browser: Some folders appear with no name
- Fixed #4201: Content Browser: Disabled nodes still produce "missing static dependency" errors
- Fixed #4213: Content browser search: Clicking on the trash icon still requires to focus the search inputbox and hit enter to actually clear the search
- Fixed #4219: Memory leak when loading some corrupt .png files
- Fixed #4220: Color-mapped .tga files are incorrectly loaded
- Fixed #4221: Content browser: Occasional crash when displaying some 24bpp RGB images
- Fixed #4094: MoveTemplateToFile: Breaks refs of existing templates
- Fixed #4206: Ctrl+F search in nodal editor doesn't search for asset paths
- Fixed #4229: Nodal editor search: Pins of base type other than int or float are not highlighted by search (orientation, data, spatial layers, ...)
- Fixed #4160: Disabled nodes can impact nodegraph compilation and break effects in some corner-cases
- Fixed #4052: Nodegraph debugger: displays wrong values when a template is instantiated multiple times
- Fixed #4231: Output export nodes show input-specific properties since 2.4.0
- Fixed #4139: AnimTrack backdrop: Glitches when seeking backwards
- Fixed #4179: Effect editor: Opening external graph doesn't restore window if already opened and minimized
Changelog 2.4.1 patch
Builds (Feb 12th 2020)
- Windows: PopcornFX-Editor_v2.4.1.61876_x64.exe
- macOS: PopcornFX-Editor_v2.4.1.61876_x64.pkg
- Linux: PopcornFX-Editor_v2.4.1.61876_x64.tgz
- 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)
- Windows: PopcornFX-Editor_v2.4.0.61629_x64.exe
- macOS: PopcornFX-Editor_v2.4.0.61629_x64.pkg
- Linux: PopcornFX-Editor_v2.4.0.61629_x64.tgz
Nodegraph
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
Simulation
- #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
Rendering
- #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
Editor
- 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
Upgrader
- #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
Plugins
UE4
- #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
Unity
- #3348: Unity: Add support for custom materials
Content examples update
New "HoudiniExamples" package
![]() |
![]() |
![]() |
![]() |
![]() |
Vertex animation textures: Example 1 | Vertex animation textures: Example 2 | Simple impostors | Impostors & Mesh LOD | Animated impostors |
New "Tutorials" effects
![]() |
![]() |
![]() |
![]() |
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 |
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