PK-Editor v2.3
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
Contents
Release highlights
![]() |
![]() |
![]() |
![]() |
![]() |
Highlight of compatible pins | Renderer 'enabled' pin | Fixed discretization display bug | Can now edit properties of type 'auto' | Un-spaghettified collision node |
Download
64-bits Windows build | MacOS build | Linux-64 build | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
Known issues
Plugin status
- UE4 plugin status : Available for v2.3.4
- Unity plugin status : Privately available for v2.3.4 (contact us)
Changelog 2.3.4 patch
Builds (Jan 20 2020)
- Windows: PopcornFX-Editor_v2.3.4.61400_x64.exe (Latest)
- MacOS: PopcornFX-Editor_v2.3.4.61400_x64.pkg (Latest)
- Linux: PopcornFX-Editor_v2.3.4.61403_x64.tgz (Latest)
- Fixed #3815: Event "TriggerOnce" node stripped in shipping mode when it shoudn't
- Fixed #3539: Unable to draw after export without alpha ETC format (Format_RGB8_ETC2)
- Fixed #3901 & #3898: VRP pass for function 'all()' is incorrect for vectors whose dimension is lower than 4, causes some over-optimizations
- Fixed #3963: Asset-baker does not properly patch the file extensions of local samplers specified as inline properties
- Fixed #3941: Crashes with timeline payloads
- Fixed #2454: Audio playback: Fails randomly creating sound system (no sounds played)
- Fixed #3960: Package import fails when original project has its 'PopcornProject.pkproj' file not located at the root
- Fixed #3971: Content browser: "Save all assets" pops error dialogs for all readonly files in project, even if the file has no changes to be saved.
- Fixed #3995: Crash at effect start when effect instance instantly dies
- UE4 plugin: #3748: Add support for UE4.24
- UE4 plugin: Fixed #3880: Crash when playing in editor with two clients
- UE4 plugin: Fixed #3928: AttributeList not correctly serialized when emitter is part of a blueprint
Changelog 2.3.3 patch
Builds (Dec 19 2019)
- Windows: PopcornFX-Editor_v2.3.3.60536_x64.exe
- MacOS: PopcornFX-Editor_v2.3.3.60536_x64.pkg
- Linux: PopcornFX-Editor_v2.3.3.60536_x64.tgz
- Fixed #3785: Attribute samplers are broken when loaded in integrations: No default-value node
- Fixed #3789: Renaming an attribute from a template-export node inside a graph does not sync the rename to the other instances of that attribute.
- Fixed #3807: Drag/dropping an attribute from the effect interface into a nodegraph pops the conflict messagebox
- Fixed #3812: Effect interface: Renaming an attribute sampler from the effect interface renames the nodes but keeps the old name in the effect interface panel
- Fixed #3721: broken rendering when pasting renderers coming from another effect
- Fixed #3727: Editor UI sliders: Slider resolution affects values that can be input when typing them directly
- Fixed #3638: Mesh projection and sample distance field artefacts. (the 'Project' template breaks position discretization. Hotfix in code directly, will be fixed in 2.4.0 in the actual template)
- Content browser: Hovering on a folder now displays the number of sub-assets inside that folder
- Content browser: The "Filters" dropdown in the search-bar now displays the total number of assets in the entire project next to each asset's filter checkbox
- #3761: Show warning in content-browser if the project contains effects older than the current editor's minor version
Changelog 2.3.2 patch
Builds (Nov 29 2019)
- Windows: PopcornFX-Editor_v2.3.2.59877_x64.exe
- MacOS: PopcornFX-Editor_v2.3.2.59877_x64.pkg
- Linux: PopcornFX-Editor_v2.3.2.59877_x64.tgz
- Fixed #3237: Spatial layers: kernel 'sum' and 'average' queries return zero when no kernel curve is plugged in
- Fixed #3733: Spatial layers: Simplify kernel queries with flat curves by non-kernel queries
- Fixed #3737: Crash when toggling off renderers with Ctrl+T and the layer no longer has any renderers enabled
- Fixed #3760: Nodal editor: Crash when undoing a Ctrl+G (group nodes to template)
- Fixed #3743: Effect editor: Crash when setting preview build version and closing effect editor without saving
- Fixed #3713: int3 constant nodes do not properly take into account the '3D_Coordinate' semantic
- Fixed #3723: Image sampler: Sampling with 'linear' filter falls back to 'point' sampling when sampling Fp32Lum images,or RGBA/BGRA images setup with 'ScriptOutputType = float'
- Fixed #3726: Image sampler: Sampling with 'linear' filter falls back to 'point' sampling when in 'wrap' mode
- Fixed #3724: Image sampler: Changing some settings when 'ScriptOutputType = float' does not refresh the texture until the effect is reopened
- Fixed #3725: Image sampler: changing input gamma space back and forth is inconsistent in-editor until the effect editor is reopened.
- Fixed #3719: Some 2.2.x or 2.3.0 effects show attribute conflicts in effect interface panel when loaded in 2.3.1
- Fixed #3758: Optimizer: Some unused nodes still produce instructions in the final simulation in some rare cases
- Fixed #3720: [SDK] Optimizer: Assert in ICB pass when folding bitwise AND or OR ops between the results of two opposite compare instructions. Can be seen when 'EventRandPick' template gets optimized.
- Fixed #3722: [SDK] Asserts when using image sampler setup with 'ScriptOutputType = float' instead of 'float4'
- Fixed #3729: Nodal editor: Creating attribute node by dragging a wire from a pin and typing "Attribute" ignores the pin name
- Fixed #3728: Nodal editor: Copy/pasting named passthroughs does not preserve them
Changelog 2.3.1 patch
Builds (Nov 22 2019)
- Windows: PopcornFX-Editor_v2.3.1.59659_x64.exe
- MacOS: PopcornFX-Editor_v2.3.1.59659_x64.pkg
- Linux: PopcornFX-Editor_v2.3.1.59659_x64.tgz
- Fixed #3703: Upgrader @2.3.0.59104 ignores attribute samplers, only upgrades attributes
- Fixed #3706: Nodal editor: Crash when selecting spatialQuery nodes
- Fixed #3707: Package import: importing packages from 2.2.x corrupts attributes
- Fixed #3689: Recurring crash with D3D11/D3D12 gpu particles with boolean streams
- Fixed #3694: Incorrect NEON implementation of SIMD::IntMulHi, causing integer divisions in CPU backend to return incorrect results
- Fixed #3694: Placement & event rand-pick templates are broken on all ARM/NEON platforms (android, ios, and switch)
- Fixed #3648: Optimizer: IR merger stage is accidentally disabled in graph compiler since v2.3.0, produces larger-than-necessary baked effect files, slower to load.
- Fixed #3641: Optimizer: VRP pass miss on 'vrand()' function (correctly works on 'vrand(inner, outer)')
- Fixed #3627: Properly handle static resources constant folding when resources are not available
- Fixed #3702: Image density sampling: Incorrect random sampling, and potential crash
- Fixed #3704: Spatial layers: Crash when using kernel query with curve attribute sampler that has no default curve (since beginning of v2)
- Fixed #3705: Spatial Layers: kernel queries ignore curve attribute sampler overrides (since beginning of v2)
- Fixed #3709: Rendering: Crash when using material without the feature 'enabled' with ribbon renderer
- Fixed #3639: When an effect fails loading because it is corrupt, editor has to be restarted before it can be loaded again (for example when fixing it by discarding changes in source-control)
- Fixed #3667: Fixed Direct3D 12 context initialization failure on recents Windows 10 builds
- Fixed #3612: Effect editor viewport: Cannot select ribbons in viewport.
- Fixed #3643: Nodal editor: Autolink errors when pin already has a wire of a different type
- Fixed #3646: Nodal editor: Orientations are incorrectly seen as pluggable into float4s, and vice-versa
- Fixed #3672: Nodal editor: Cannot auto-export renderer properties from custom renderer interfaces: .pkri editor does not write some of the required information
- Fixed #3696: Nodal editor: Missing warning when a linked pin gets disabled from the material options
- Fixed #3652: Nodal editor: Crash in self-referencing templates (corner-case, self referencing templates are invalid, should not happen, and produce a graph error, but the editor still shouldn't crash)
- Fixed #2703: Attributes: General pass to make them usable:
- Fixed #3679: Attributes: Synchronize attributes when editing properties from an export node or from the effect interface panel
- Fixed #3680: Attributes: Many UI glitches
- Fixed #3681: Attributes: "Focus next reference" button does not work
- Fixed #3682: Attributes: If any attribute has unsolvable conflicts, clearly highlight in red in the effect interface so that it is super-obvious.
- Fixed #3683: Attributes: Catch invalid settings upstream and warn user with a clear message (ex: invalid types)
- Fixed #3684: Attributes: When creating a new attribute from an export node, and it conflicts with an existing attribute with different settings, ask used which version should be used.
- Fixed #3685: Attributes: Attribute samplers are never shown as mismatching when conflicting declarations exist in the graph
- Fixed #3686: Attributes: Attribute samplers defined by external templates almost never work properly
- Fixed #3687: Attributes: 'orientation' attributes should not expose the 'HasMin', 'HasMax', and 'HasSlider' properties
- Fixed #2714: Effect interface panel: Attribute properties are not taken into account until reference is "rebuilt" by deactivating/re-activating node
- Fixed #3317: Effect interface panel: Automatic change of focus to the last attribute
- Fixed #3525: Effect interface panel: Crash when deleting an attibute in nodegraph while hovering Effect Interface attributes
- Fixed #3678: Effect interface panel: Add F2 shortcut to rename attributes
- Fixed #3152: Effect interface panel: Attribute samplers can't be in a category
- Fixed #3637: Export package dialog: Add "Show in folder" button to quickly go to where the .pkkg file has been written
- Fixed #3636: Editor package import: Be less strict when importing packages: Allow to import packages from the same minor version, even if the package patch number is more recent
- Fixed #3649: Adding or removing pins or changing auto-export status in a local template doesn't update the editor view of pluggable pins, causing the template to not appear in the node creation menu when dragging a wire
- Fixed #3698: Project launcher: Package import buttons appear grayed out after download. Editor needs to be restarted to be able to properly import the package.
- Fixed #3658: UE4: Linear atlas blending and alpha remap not working with UE < 4.21
- Fixed #3659: UE4: Motion vectors map atlas blending
- Fixed #3660: UE4: Add support for Diffuse Ramp texture in UE4 materials
- Fixed #3666: UE4: Add support for Emissive map in materials
Changelog 2.3.0
Builds (Nov 08 2019)
- Windows: PopcornFX-Editor_v2.3.0.59351_x64.exe
- macOS: PopcornFX-Editor_v2.3.0.59351_x64.pkg [Experimental]
- Linux: PopcornFX-Editor_v2.3.0.59351_x64.tgz
Features
Editor & Runtime
- #3631: Renderers: add a bool pin to enable/disable the renderer
- #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.
- 'frac' function now always returns values in the [0,1[ range. previous behavior is still available with 'fracSign' (see Upgrader @ 2.3.0.58281)
Editor only
- #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 release)
- #3307: Add support for OpenEXR images (.exr / .hdr)
- #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
- #3363: Materials: Ramp texture for diffuse color remap
- #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)
- Nodal editor backend panel: highlight lines based on hovered/selected nodes, and highlights nodes when hovering lines (both on CPU & GPU backends)
- Nodal editor backend panel: Now shows GPU compute-shader disassembly
- 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
Bugfixes
Editor & Runtime
- Fixed #3046: Spatial query calls are unpredictably reordered by compiler & backend, breaks internal cache, leads to bad performance. (see also related improvement features #3045 & #3047)
- 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 #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
Performance
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
- #3633: 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 (happens every frame on most simulation tasks)
- #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'
Upgrades
- Upgrader @ 2.3.0.57109 : Spatial layers: Exposed 'NeighborIndex' as a pin, and removed 'NeighborCacheSize' property, which is now auto-detected by the graph compiler
- Upgrader @ 2.3.0.57545 : Spatial layers: Added 'HasData' output pin
- Upgrader @ 2.3.0.57546 : Arithmetic nodes: Fix corrupted effects containing arithmetic nodes with both input pins having the same name
- Upgrader @ 2.3.0.58281 : Renamed 'frac' function to 'fracSign', and added new 'frac' function that always returns in the [0,1[ range
- Upgrader @ 2.3.0.58373 : Add new Core Materials 'Opaque_Billboard' and 'Opaque_Ribbon'
- Upgrader @ 2.3.0.58455 : Editor Light-backdrop colors are now converted from sRGB to linear before being used for rendering.
- Upgrader @ 2.3.0.58593 : Renamed some rendering interfaces:
- Renamed 'CRHIRenderingFeature::UseUv' to 'CRHIRenderingFeature::UseUV'
- Renamed 'CRHIRenderingFeature::UseMeshUv1' to 'CRHIRenderingFeature::UseMeshUV1'
- Upgrader @ 2.3.0.58594 : Rendering interfaces: Add missing nodes
- Upgrader @ 2.3.0.58846 : Nodegraph: Can now edit 'auto' properties: Added internal 'BaseType' property to pins.
- Upgrader @ 2.3.0.58875 : Rendering interfaces: Rename Atlas "Source" enum elements from "Definition / Procedural" to "External / Procedural"
- Upgrader @ 2.3.0.59001 : Rendering interfaces: Rename transparent "SortValues" pin to "SortKey"
- Upgrader @ 2.3.0.59104 : 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'
Plugins
UE4
- 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