PK-Editor v1.11

From PopcornFX
Revision as of 09:03, 20 December 2016 by JBilalte (talk | contribs)
Jump to navigation Jump to search

Back to anouncements
Pre-Released ~November 2016, Released ~December 2016

Release highlights

Simulation Cache Animtrack & Default backdrops Script Cache
Realtime playback of offline simulations (Ex: houdini sims) Animtrack backdrop &
Default backdrops
Script cache, faster loading times


64-bits Windows build
PopcornFX-Editor_Setup_v1.11.1.32952_x64.exe (Latest Preview) NewIcon.png
PopcornFX-Editor_Setup_v1.11.0.32777_x64.exe (Latest) NewIcon.png

If you encounter problems installing the editor, please see the Troubleshooting page.
Note: since v1.10, we stopped providing 32-bits builds of the editor. If this is a problem for you and if you need one, please contact us on Support mail.png

Plugin status

  • Unity plugin status : Available for v1.11 (Plugin version v2.9p2)
  • UE4 plugin status : Not yet available for v1.11

Known issues

Known issues in the latest 1.11.1 build (Dec 20 2016):

  • Collision evolver sometimes misses collisions when particles are sliding on surfaces.
  • Collision evolver produces slightly unstable bounces when framerate is not stable.
  • OnSpawn event does not transfer parent-fields.
  • infinitely self-triggering particles that use event recursion will keep all their previous instances in memory until the last child particle is killed.

Please contact support at if you encounter any other problem

Latest fixes

Patch 1.11.1

Build: PopcornFX-Editor_Setup_v1.11.1.32952_x64.exe (Dec 20 2016) (Latest Preview) NewIcon.png

  • Scripts : Added view.aspect() and view.resolution() functions
  • Script compiler : Now suggests to use some builtin constants instead of manually typing them (ex: typing '3.14159' by hand in the script will produce a suggestion to use the 'pi' builtin instead)
  • Script optimizer : Fixed 1.11.0 incorrect constant-folding of compare operators, when comparing two fully constant float values, an integer compare of the values was done, instead of a floating-point compare.
  • Script optimizer : Now iteratively applies optimization passes as long as optimizations are still being made. Currently all scripts converge within 1 to 2 passes only.
  • Script compiler : Now emits a warning when useless statements that have no effect are found in a script. (for example: a line reading "0.05 * pow(1-LifeRatio, 2);" instead of "Size = 0.05 * pow(1-LifeRatio, 2);" will cause the warning "Useless statement : has no side-effects, and result is not used." to be emitted)
  • Editor : Fixed bad HUD display position on latest NVidia drivers + win10

Changelog 1.11.0

Build: PopcornFX-Editor_Setup_v1.11.0.32777_x64.exe (Latest) NewIcon.png (Dec 09 2016)


  • Runtime
    • Flocking evolver Flocking evolver : Fixed a warning in the editor : 'MeanNeighborDirection' was declared with an incorrect rotate flag.
  • Editor
    • Fixed bad FBX animation path import when importing paths that were exported with a non-identity transform from the origin. Rotations were messed-up.


  • Runtime
    • Vastly improved script optimizer, moved most optimizations from AST-level to the SSA-based IR level.
    • Script compiler can now factorize common sub-expressions
    • Script compiler can now remove all redundant loads and stores to particle fields
    • Script compiler can now remove dead computations that don't contribute to anything
    • Script compiler can now do more aggressive constant-folding
    • Revamped particle page allocator : faster, better heuristics, better memory usage
    • Spatial layer Spatial layers : Slightly improved performance.


  • Runtime
    • Script IR can now be pre-compiled and cached in pkfx files, entirely skipping the compilation of scripts at runtime during loading, resulting in much faster effect load times.
    • Particle evolver All evolvers : 'Active' checkbox status now saved in the pkfx file. Inactive evolvers do not contribute to particle declaration anymore (any auto-field they insert will be removed). Inactive evolvers are removed at bake-time by the AssetBaker. Allows to keep development-only nodes inside effects.
    • Flocking evolver Flocking evolver : Doesn't need the 'MeanNeighborDirection' field anymore, allows to save memory by clearing the 'MeanNeighborDirectionField' property of the evolver.
    • New feature : simulation caches. Layers can now be setup to playback a cached simulation stored in a .pksc fime (pksc = PK Simulation Sache). The particles will have all fields stored in the simcache file, which will be updated each frame accordingly. Additional spawn and evolve logic can be added as usual.
    • Scripts : new 'linear2srgb', 'srgb2linear', 'fast_linear2srgb', and 'fast_srgb2linear' functions, that perform colorspace conversions. they accept either float3 RGB or float4 RGBA colors. If an RGBA color is passed, won't modify the alpha. The 'fast' versions apply a simple 2.2 gamma, whereas the non-fast perform the proper sRGB conversions.
    • Texture sampler Image formats : Added support for ETC2 : RGB8, RGBA8, and RGB8A1
  • Editor
    • New backdrop : Animtrack backdrop Animtrack backdrops. Can now parent backdrops together, Animtrack backdrop moves all its childs along a path imported from an FBX file. Useful to create test-rigs for effects that need to be previewed in movement. Can also bind an animtrack backdrop to an animtrack attribute sampler.
    • Can now open projects inside a new editor window and keep the project selection window opened, useful when working on multiple projects at the same time.
    • 'New asset' window now has a checkbox to auto-open the new asset right after it has been created. Useful when content-browser has too many items displayed or a filter active and you don't want to reset the filter to find and open your asset. Can also be accessed from the "User" category of the project settings.
    • PK-Editor.exe : now accepts a '-h' or '--help' command-line switch to display the list of available switches.
    • Renderers : Can now trim particle textures to reduce overdraw (Experimental). Texture viewer now displays trimmed vertices if the texture has a .pkat containing trimming data. The particle renderers used in the editor and the Unity/UE4 plugins currently ignore the trimming information, and will still render the particles as regular billboards, however, if you are using the SDK in your in-house engine, you now have access to that trimming data.
    • Mesh backdrop Mesh and Animtrack backdrop Animtrack backdrops now provide default builtin backdrops for convenience. They have a dropdown that allows you to pick either a custom backdrop as before (path to an FBX file), or one of the new default builtin backdrops.
    • Revamped atlas viewer.
  • Assets
    • AssetBaker can now selectively bake Script IR cache (default=ON), by setting the 'EnableScriptCache' property of the 'COvenBakeConfig_Particle' configuration object in the .pkcf bake config files (on by default).
    • AssetBaker can now replace asset paths extensions referenced in .pkfx files when baking (ex: dds -> gnf when baking for PS4, fbx -> pkmm, ...), through a custom 'ExtensionsRemap' property in 'COvenBakeConfig_Particle'.
    • AssetBaker can now remove inactive nodes through the 'RemoveInactiveNodes' property in 'COvenBakeConfig_Particle' (on by default).
    • AssetBaker can now properly bake HBO files with different per-platform settings : if settings differ, will load the HBO file in a local context, once per config, and process everything.
    • AssetBaker can now generate texture trimming (cutouts) and store the optimized vertices in the .pkat file