PK-Editor v2.6

From PopcornFX
Jump to navigation Jump to search

Back to anouncements
Released Jun 18th 2020. (preview-1 released Jun 04th 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

! IMPORTANT ! After upgrading a project to 2.6.0, make sure you clear your shader-cache by doing 'Edit > Clear shader cache' !

Release highlights

New renderer: Triangle New scene query: scene.sweepSphere()
New renderer: Triangle Sphere sweep scene queries VectorField viewer Texture viewer


64-bits Windows build MacOS build Linux-64 build
PopcornFX-Editor_v2.6.5.723_x64.exe (Latest) NewIcon.png
PopcornFX-Editor_v2.6.5.723_x64.pkg [Experimental] (Latest) NewIcon.png
PopcornFX-Editor_v2.6.4.308_x64.pkg [Experimental]
PopcornFX-Editor_v2.6.3.65488_x64.pkg [Experimental]
PopcornFX-Editor_v2.6.2.65259_x64.pkg [Experimental]
PopcornFX-Editor_v2.6.1.65141_x64.pkg [Experimental]
PopcornFX-Editor_v2.6.0.64957_x64.pkg [Experimental]
PopcornFX-Editor_v2.6.5.723_x64.tgz (Latest) NewIcon.png

Changelog 2.6.5 patch

Builds (Sep 3rd 2020)

  • Fixed #5120: GPU sim: huge performance overhead as soon as the GPU sim is enabled on some hardwares (D3D12)
  • Fixed #5203: GPU sim: instant crash on some AMD graphics card (D3D12)
  • Fixed #5225: GPU sim: can't bind depth map as attribute sampler (D3D12)
  • Fixed #5224: GPU sim: cannot bind texture attribute sampler when attribute sampler node has no default value (D3D12)
  • Fixed #5130: GPU sim: unsupported view.project/unproject (D3D11/D3D12)
  • Fixed #5201: Crash when D3D11/D3D12 graphics API cannot be loaded, and "Gpu Enabled" is activated
  • Fixed #5200: Crash when closing editor and Vulkan graphics API is used
  • Fixed #5199: Crash when editor default shaders cannot be loaded
  • Fixed #5204: Pin Rules are no longer exported for renderer nodes
  • Fixed #5202: Random crashes when editing effects with "Gpu enabled" (D3D12)
  • Fixed #5135: Effect documentation generator shows language list in native characters, unreadable for anyone not actually able to read the language character set (ex: english-only-speaking person trying to read "にほんご" (Japanese, in Japanese))
  • Fixed #5134: Effect documentation generator displays "Corrupt effect: Could not build layergraph"

Changelog 2.6.4 patch

Builds (Aug 20th 2020)

  • Fixed #5078: Crash when closing effect which has been modified externally
  • Fixed #4402: Image sampler: Sampling R32F / L32F images with 'ScriptOutputType' property set to 'float4' flattens texture to BGRA8 and looses all HDR information.
  • Fixed #5056: GPU sim: Falls back to CPU sim whenever using the nodes: "InfiniteLife", "self.kill", "self.wasKilled"
  • Fixed #5126: Texture viewer: Cannot export from RGBA16F or RGBA32F to R16F or R32F: Some combinations do not work at all, others produce loss of HDR range due to intermediate BGRA8 conversion
  • Fixed #5125: Texture viewer: Bad texel values shown for R16F textures
  • Fixed #5040: Crash when closing texture viewer window after the texture was hot-reloaded
  • Fixed #5108: Associate more PopcornFX file extensions during editor installation
  • Fixed #5104: Double-clicking on a .pkfx file from a project which has a different version than the latest install will open it with the wrong editor version
  • Fixed #5100: Opening a .pkfx file from explorer does not work if the .pkproj is not at the project root
  • Fixed #5077: Mesh importer: Clicking 'Reimport' button reimports the mesh twice (and sometimes thrice!). Extremely painful for very large meshes that already take a while to import
  • Fixed #4799: Export to package directory is not remembered from one launch of the editor to another.
  • Fixed #5076: Editor windows: Place asset name first in the window title so that it's more readable in the taskbar
  • Wrapping of SDK & Editor revision IDs (went above 65535, wrapped back to 0 to keep windows 16-bits version numbers happy)

Changelog 2.6.3 patch

Builds (Jul 30th 2020)

  • Fixed #5016: Crash when deleting an event output node while the event is still wired to a child layer in the layergraph
  • Fixed #4961: Nodegraph: extracting a payload at evolve is not implemented but shows no warning
  • Fixed #4991: Nodegraph/Treeview: copy/pasting nodes with properties containing absolute file paths (contained in the project) does not replace those paths in their relative form
  • Fixed #5022: Propertygrid: Crash when choosing 'OpenAsset' on an resource thumbnail, but the editor doesn't have a content-browser window opened
  • Fixed #5023: Propertygrid: choosing 'Show in Content-browser' in right-click menu of an asset property does not raise the content-browser window
  • Fixed #4990: Asset picker: pasting an absolute file path contained in the project is not accepted as a valid input
  • Fixed #4964: Mesh backdrop: Animation not updated until effect is reset
  • Fixed #4760: Attributes: Moving the mouse while setting the value of a slider (with right click) makes the attribute move
  • Fixed #5031: No "Maximize" button on windows of undocked editor panels (especially the viewport)
  • Fixed #5024: Editor asset windows: Closing an undocked panel and restoring it via the 'View' menu makes it un-redockable until the editor is restarted
  • Fixed #5025: Editor asset windows: Undocking the viewport, closing it using the window's close button, and reopening it via the 'View' menu breaks all rendering

Changelog 2.6.2 patch

Builds (Jul 16th 2020)

  • Fixed #4705: Scale/3DCoords semantic when type is not float3 negates user input values when the corresponding axis is flipped relative to RHYUP
  • Fixed #4943: Unstable sort in the node creation dialog
  • Fixed #4969: Crash when moving template to file
  • Fixed #4430: GPU sim: Localspace nodes do not work
  • Fixed #4904: GPU sim: orientation stored at spawn and loaded at evolve doesn't work
  • Fixed #4905: GPU sim: two attributes with similar names can get mangled to the same symbol and cause the GPU sim CS to fail compiling
  • Fixed #4932: GPU sim: Cannot use attributes of type 'orientation' at evolve
  • Fixed #4903: Renderers: Warning when an asset path is empty even if it is not used
  • Fixed #4958: Cubemap backdrops do not properly handle the axis system
  • Fixed #4722: Content browser: Texture thumbnails do not refresh when re-exporting the texture
  • Fixed #4965: CPU saving mode: Does not pause rendering ! Render thread still loops as fast as it can
  • Fixed #4897: Cannot specify the "Auto" simulation location behavior
  • Fixed #4898: Asset baker: Project settings are ignored when baking
  • Fixed #4947: AssetBaker: 'ExportPixelFormatStrategy' is ignored
  • Fixed #4949: AssetBaker: add new 'AppendExportExtToOriginalExt' option to texture baker
  • Fixed #4899: UE4: Triangle renderer support
  • Fixed #4900: UE4: Cannot specify whether or not light particles affect transparent geometry
  • Fixed #4912: UE4: Popup "PopcornFX file is outside mount point" when re-importing static mesh used for sampling
  • Fixed #4980: UE4: Reimporting effect with a texture overridden reverts to using the effect's default texture
  • Fixed #4981: UE4: Overriding an effect texture reverts overridden materials to their defaults

Changelog 2.6.1 patch

Builds (Jul 03rd 2020)

  • Fixed #4834: Cannot edit Y and Z components of Float3 / Int3 properties in '3D_Coordinate' semantic mode in projects with a Z-up axis-system
  • Fixed #4857: Nodegraph: the value set in an auto-exported property is ignored when the property has a default value in its root declaration.
  • Fixed #4852: Inserting a layer in the middle of an event wire doesn't set the automatically created output pin to "always visible", causes pin to disappear when out wire is cut-off
  • Fixed #4848: Release-assert when switching an event trigger to a lower exec frequency
  • Fixed #4749: Nodes are displayed grey when effect has GPU sim enabled, but layer falls back to CPU (Sim Location view mode)
  • Fixed #4098: Nodegraph: color visualisation is not refreshed when sim is paused and the user changes the visualisation mode
  • Fixed #4843: Crash when drag/dropping a template into itself and the template is used in the layergraph
  • Fixed #4392: Optimizer: Anti-optimization: 1/(x*x) gets transformed to (1/x)/x, which is roughly 60% slower on desktop
  • Fixed #4871: sim.loadBias is in range [0;1] instead of [-1;1]
  • Fixed #4823: Simulation freezes when making a spatial query at huge positions
  • Fixed #4798: GPU sim: view.velocity does not work and falls back to CPU sim
  • Fixed #4795: GPU sim: Bounding boxes are broken.
  • Fixed #4832: GPU sim: effect artefacts (all instances are deterministic & have the same seed)
  • Fixed #4892: UVs on triangle renderers are broken
  • Fixed #4854: Billboards have flipped UVs when using Vertex Shader billboarding for AxisAlignedCapsules
  • Fixed #4818: Planar aligned billboards bounding box is too small
  • Fixed #4825: Crash: "show in content browser" when no content browser is open
  • Fixed #4841: Content browser: Renaming a folder in explorer causes thumbnails inside folder to disappear
  • Fixed #4471: Content browser: Renaming a folder in explorer while the content-browser is running makes the folder disappear in the treeview & thumbnails view
  • Fixed #3972: Content browser: When closing content-browser and a read-only asset has modifications, editor shuts-down when 'Cancel' is clicked on the retry dialog
  • Fixed #4299: Editor should auto-reimport assets when asset config file has changed, as it can change the way the asset should be imported
  • Fixed #4866: Missing selection highlighting on triangle renderer
  • Fixed #4853: Crash when closing the Effect editor using D3D12
  • Fixed #4830: No hot reload of backdrop assets
  • Fixed #4748: Hitting Ctrl+R in the viewport re-compiles compute shader bytecodes when editing an effect in GPU simulation mode
  • Fixed #3803: Crash with the undo/redo stack when a 'Template Export Attribute' node that is bound to backdrop is toggled on/off or deleted/created
  • Fixed #4894: UE4: Tries to compile every particle layer on GPU by default
  • Fixed #4869: UE4: Billboards have flipped UVs when using Vertex Shader billboarding for AxisAlignedCapsules
  • Fixed #4868: UE4: Triangle & Decal renderers aren't stripped out from built renderers compatible with GPU

Changelog 2.6.0

Builds (Jun 18th 2020)

Assets & core-lib

  • Fixed #4418: Template corelib: 'sim.lodQueryBox' node is broken
  • Fixed #4666: Template corelib: 'InfiniteLife' node has counter-intuitive default value for death-delay, set to 1 second. Should be 0 by default
  • #4754: Template corelib: 'Color' node: Add 'RGB Scale' and 'Alpha Scale' inputs for more user-friendly tweaking
  • #4743: Template corelib: 'Counter' node: Add 'Increment' input to control how much the counter is incremented when the input 'Condition' becomes true
  • #4742: Template corelib: 'Timer' node: Add 'TimeScale' input to control how fast the timer counts time
  • #4719: Template corelib: 'Physics' node: Add 'VectorFieldTimeCursor' input to allow using animated vectorfields without having to manually sample them
  • #4581: Template corelib: Shapes: Improve 'ShapeProperties' node
  • #4579: Template corelib: Shapes: Add 'MeshProperties' node, allowing to get the vertex count, triangle count, and tetra count from a mesh without having to go through a script node.
  • #4744: Template corelib: Shapes: Add 'shape.buildParametricCoordsRegular' node
  • #4580: Template corelib: Trail node: Add 'bool Enabled' property to easily switch trails ON/OFF without having to use a custom spawn metric scale
  • #3015: Template corelib: Trail node does not allow Spawn Interval customization per particle, and is maxed at 1.0 unit
  • #4539: Template corelib: 'CurveOverTime' node: ignores the 'Repeat' parameter when using 'LifeRatio' mode
  • #4480: Template corelib: 'OnDeath' and 'SimpleOnDeath' nodes: make them take a 'bool Enabled' pin to allow to conditionally disable them


Nodal editor

  • Fixed #4238: Ctrl+G almost always messes up input order
  • Fixed #4237: Ctrl+G of multiple nodes without in-between passthroughs produces totally broken looping template
  • Fixed #4184: Attributes: Drag/dropping an attribute into the graph pops warning window asking whether to reuse attribute or node values -> meaningless, the node doesn't exist yet !
  • Fixed #4766: Nodal editor: Crash when opening a 'double-curve' node
  • Fixed #4753: Disabled nodes aren't displayed as grey when view mode is Sim Location
  • Fixed #4632: Pasting a corrupt copy/paste text buffer in the nodegraph sometimes crashes the editor
  • Fixed #4578: Propertygrid: Changing a single component of a vector when multiple objects are selected and have different values should only change this component and leave the others untouched
  • Fixed #4148: Propertygrid: Validating inputbox with 'Enter' when multiple nodes selected doesn't broadcast the value to all nodes anymore
  • Fixed #4475: "sim.wave" nodes min/max/sum produce warnings in graph when used with nothing wired in, and always return the type of the input even when the output should have a different type
  • Fixed #4118: No nodegraph error / warning when a renderer has unset/invalid resources required for rendering
  • #4145: Add '3DScale' semantic for template & renderer inputs
  • #2196: Add 'Angle' semantic for template & renderer inputs

Graph compiler & optimizer

  • Fixed #4713: Effect compiler & optimizer: Crashes when graphs become so large that they overflow 65536 instructions
  • Fixed #4712: Graph optimizer: Invalid constant-folding on payload with different values from multiple events
  • #4429: Optimizer: Allow doing fuzzy float compares when simplifying instructions: Ex: optimize "x * asfloat(0x3F7FFFFF)" to be "x * 1.0f"
  • #4813: Graph compiler: Faster compilations & bake times using parallel compilations


  • Fixed #4671: Random crash when using self.kill
  • Fixed #4633: shape.buildPCoordsBox() Always returns an invalid pcoord
  • #4472: Payload append node: Simplify interpolation parameters
  • #4428: Spatial layers: Allow using curve attribute samplers as the input kernel to the kernel queries
  • #4404: Image sampler: Implement native RGBA16F sampling
  • #4056: Add support for non-zero radius collisions
  • #4814: Faster effect load times

Simulation: GPU

  • Fixed #4368: GPU D3D12: Mesh attribute sampler ignores mesh backdrop's position, scale, orientation
  • #3873: GPU: Attribute shape sampler
  • #4759: GPU sim: compute shader bytecode generation takes longer because Event* nodes are processed but are CPU only
  • #4165: GPU D3D12: implement wave intrinsics


  • Fixed #4308: Deferred lighting broken in LeftHandedYUp
  • Fixed #4676: Draw calls bounds aren't displayed for billboards when using vertex shader billboarding
  • Fixed #4655: Crash when the geometry feature-set failed to be loaded
  • Fixed #4603: Shader compilation errors/warnings on Mac/Metal
  • Fixed #4359: Shaders do not get hot-reloaded when opening effect editor
  • Fixed #4681: Draw call bounds are not displayed if "Show HUD" and "Show draw calls" is disabled
  • #4497: Add soft-particle feature on the transparent mesh material
  • #1847: New renderer: Triangle renderer
  • #4311: New renderer: Decal renderer
  • #4144: Renderers: Remove hack in fix of #4084 & #4143: Use DataSemantic_3DScale
  • #2408: SRGB: better handle of sRGB formats


  • Fixed #4767: Content browser: Crash when using the "back" or "forward" key and the previous or next location has been deleted
  • Fixed #4617: Content browser: Crash when closing editor before all thumbnails have finished loading.
  • Fixed #4496: Exporting a package does not include the animtracks the animtrack backdrop uses
  • Fixed #4416: Export to package does not remember last save directory
  • #4537: Editor windows: Add ability to reset the layout of just a specific editor window type, not the entire editor. (ex: Just reset the layout of the mesh importer)

Effect editor

  • Fixed #4663: Crash when saving default-value of an attribute (regression in v2.5.5)
  • Fixed #4777: Shape attribute link breaks upon modifying renderer params
  • Fixed #4678: Animation backdrop: animation path is not visible by default even though preset "None" is selected
  • Fixed #4616: TGA loader is extremely slow when loading compressed images
  • Fixed #4414: Effects are hard to merge when edited by two different users: Make new node UIDs non-deterministic so they have less chance to collide across users
  • Fixed #4412: Renaming a template in an effect resets all its auto-exported properties in all its local instances
  • Fixed #4571: Color picker: Unstable RGB sliders
  • #4570: Color picker: Allow setting HDR values

Curve editor

  • Fixed #4758: Curve presets dropdown is not sorted and has an unpredictable order
  • #4598: Curve editor: Allow to disable the [0,1] time-bounds limits

Mesh importer

  • Fixed #4717: Mesh importer: Removing Normals and Texcoords from the imported geometry in the bake settings is ignored, streams are still imported.
  • #4620: Mesh editor: Display submesh bounds
  • #4544: Mesh importer window: General improvements: Allow inspecting submeshes, UV-sets, and visualize which data takes up the most space in the baked file.
Mesh importer overview (3 min 02 sec) Mesh importer deep dive (23 min 26 sec)

VectorField viewer

  • #4543: New VectorField viewer window, when double-clicking a vector-field asset
  • #4716: VectorField viewer: Export vector-fields as volume textures
VectorField viewer overview (3 min 05 sec) VectorField viewer: Basic UI & Visualization (18 min 09 sec)
VectorField viewer: Import/Export & Bake Settings (25 min 41 sec) VectorField viewer: Benchmark mode (7 min 06 sec)

Texture viewer

  • #4545: New Texture viewer window, when double-clicking on a texture
Texture viewer (17 min 16 sec)

Asset baker

  • Fixed #4566: Asset baker: When bake fails or produces no output, does not delete already existing baked files
  • #4283: Add option to asset baker allowing to keep effect sources in a standalone form


  • New upgrader @ v2.6.0.62489: AssetBaker Oven bake config particle: renamed 'RemoveSource' to 'SourceConfig' and it is now an enum instead of a boolean
  • New upgrader @ v2.6.0.62893: Curve node: Removed 'IsProbabilityCurve': Now auto-deduced
  • New upgrader @ v2.6.0.63470: Payload nodes: Simplified interpolation settings
  • New upgrader @ v2.6.0.63892: Renderers: apply new 'Angle' semantic on the billboard field 'Rotation'
  • New upgrader @ v2.6.0.64527: Renderers: apply new '3D_Scale' semantic on the billboard field 'Scale'
  • New upgrader @ v2.6.0.64539: Trail node improvements
  • New upgrader @ v2.6.0.64553: Renderer interface: remove 'SampleEnvironmentMap' and 'SampleBRDFLUT' options, replace them with a single 'UseSceneLightingInfo' option
  • New upgrader @ v2.6.0.64739: Add new Corelib files: Materials: 'Default_Decal', 'Default_Triangle', 'Opaque_Triangle'
  • New upgrader @ v2.6.0.64753: Renamed 'effect.visible()' function to 'effect.isRenderingEnabled()'
  • New upgrader @ v2.6.0.64887: Renamed texture sample & remap density node outputs from 'Value' to 'UV'



  • Fixed #4673: UE4: Premultiplied Alpha default material is Translucent instead of AlphaComposite
  • #4725: UE4: Add support for non-zero radius collisions
  • #4583: UE4: Bake effects as binary
  • #4551: UE4: Add support for raytraced meshes
  • #4550: UE4: Add support for raytraced billboards
  • #4284: UE4: Bake effect when project is cooked depending on the target platform

Content examples update

New "Tutorials" effects

Triangle renderer Decal renderer Sphere-sweep collisions & queries
Shows how to use the triangle renderer
Shows how to use the decal renderer
New scene query: scene.sweepSphere()