PopcornFX v2 Beta 4 is released!

PopcornFX v2 Beta 4

PopcornFX v2 Beta-4 is out!

What’s new:

You need to upgrade your existing projects in order to use it.
We updated the ‘Tutorials’ and ‘Samples’ online packages.
Select the ‘Online Packages’ tab in the project selection window and download the latest ones.

First time using PopcornFX v2.0? Take a look at the Getting_Started wiki page.

1 – Determinism

Determinism is back!

PopcornFX v1 had a deterministic build. It is now built in v2, and doesn’t require a specific build.

You can configure determinism down to per-layer granularity. See #1656

PopcornFX v2 determinism

See some examples in the tutorial effects Particles/Tutorials/100_Determinism.pkfx and Particles/Tutorials/103_Determinism_Partial.pkfx.

2 – Resources

Renderer resources (textures, meshes) and samplers can now be exposed as template properties in the parent graph, allowing the creation of truly generic templates.

PopcornFX v2 beta Rendering

3 – New “auto-export” & ‘”toggle visibility” buttons

Each template property has two additional buttons in the property grid. Now you can toggle the pin’s visibility and auto-export the property into the parent graph. See #1576 #1843

PopcornFX v2 beta 'auto-export' & 'toggle visibility' buttons

Your workflow will be much faster when you want to simply forward a child node’s properties into the parent graph, as you don’t need to create and setup an “export input” node anymore.

Here is an example of a template graph that exports 4 properties to the parent graph, without  and with auto-export.

Without auto-export:

PopcornFX v2 beta 4 Without auto-export

With auto-export:

PopcornFX v2 beta 4 With auto-export

4 – Animtrack sampler is back!

PopcornFX v1’s animtrack sampler is now available in v2; it’s even better and easier to use!
Sampling an animtrack outputs the track position, orientation, and scale at the sample point, which can be used by a transform template to transform 3D vectors/points.

5 – New ‘orientation’ type

Now scripts and graphs have a new type; ‘orientation‘, which stores a 3D rotation.
It is internally stored as a quaternion, so it has the same footprint as a float4.
When exposed as properties in nodes, it appears as euler angles, specified in degrees, not radians.

The ‘orientation‘ wires appear orange:

PopcornFX v2 'orientation' type

Here is another view of a layer which appends an orientation to an event payload:

PopcornFX v2 'orientation' type

Effects will be upgraded, but if you were using scripts with the orientation functions that existed before beta-4, they will not compile anymore and you will need to fix them by replacing ‘float4’ by ‘orientation’.
Orientations cannot be cast to and from the old float4s.
You can use a variety of helper functions that build orientations from vectors.

6 – Page localization is back!

PopcornFX v1’s page localization feature is back in v2. See #1694
Page localization groups particles from different emitters into batches which are spatially close, allowing for more efficient culling and physics engine / scene optimizations.

PopcornFXv2 beta 4 Page localization

7 – Nodal editor improvements

3-state expand/collapse (#1521)
PopcornFX v2 beta 4 Cycle visibility

improved annotation node interactions (#1616)
PopcornFX v2 beta 4 New Annotations

Added ‘fit to viewport’ buttons in nodal editor, curve editor, and scene viewport, default shortcut: Ctrl+E (#1866)

PopcornFX v2 beta 4 Fit to viewport

And also:

  • new ‘one minus’ node (#1390)
  • single-click validation of node in node creation menu (#1614)
  • fixed bug preventing interactions in top area of nodegraph (#1751)
  • fixed color-picker bugs (#1793 #1794)
  • could modify read only graphs with F2 and Ctrl+X shortcuts (#1919)

8 – DX12 simulation improvements

Various improvements and added support for attributes.

9 – Upgrader improvements

Upgrading projects now gives some feedback and dumps the full upgrade log to help troubleshoot issues (#1226)

PopcornFX v2 beta 4 Upgrader improvements

10 – Performance improvements

  • parallel render sorting (#1554)
  • FX file loading performance improvements, both in-editor and at runtime, a lot less memory allocations, overall much more efficient at runtime.
    • loading binary effect files (baked): 9x faster
    • loading text effect files (editor): 6x faster

11 – compiler improvements

  • fixed bug preventing ‘clamp (float, int, int)’ to compile properly #1939
  • fixed bugs in optimizer which were preventing some optimizations to take place. #1915 #1931 #1940 #1962 #1964
  • compiler now able to merge part of identical resources

12 – fixed various rendering bugs

  • axis-aligned capsule billboards were not drawn when axis length was zero #1780
  • geom billboards were not drawing some things correctly #1786
  • billboards generated inconsistent geometry between different axis systems #1795
  • ribbons were drawn incorrectly when the number of parent particles was greater than 64k

13 – New templates

PopcornFX v2 beta-4 comes with a couple new “placement” nodes, that work like event multipliers, but modify the transforms in the event payloads to place child layers at specific locations on shapes.
Allows to spawn on regular lines, planes, cubes, on fibonacci circles and spheres.
See the tutorial effect Particles/Tutorials/110_PlacementTemplates.pkfx for usage examples

14 – New tutorials FX

  • Particles/Tutorials/015_Templates.pkfx : Updated to show property auto-export
  • Particles/Tutorials/049_RendererExportedResources.pkfx : Shows resources exported as properties, through an example of a generic layer template used to make two very different looking effects
  • Particles/Tutorials/060_Samplers.pkfx : Updated to show animtrack sampler
  • Particles/Tutorials/088_SceneIntersect.pkfx : Updated to show another example of resources exported as properties, through am easy to use generic template “DrawScreenNumber” that displays a numeric floating-point value as onscreen particles with a customizable texture.
  • Particles/Tutorials/100_Determinism.pkfx : Shows basic determinism controls
  • Particles/Tutorials/103_Determinism_Partial.pkfx : Shows partial determinism through multiple level of particle parenting/trails
  • Particles/Tutorials/110_PlacementTemplates.pkfx : Shows the new placement templates
  • Particles/Tutorials/500_AllNodes.pkfx : Updated with the new nodes in beta-4

15 – Stabilization & bugfixes

PopcornFX v2 beta-4 has seen a pretty large number of bugfixes and stabilization fixes.


Read the full changelog in the beta download portal: https://www.popcornfx.com/services/editor-v2


Beta 4 Patch-1

Important fixes

Fixes issue #1990 (Editor + Runtime) : “Compiler will incorrectly merge some 2-args op chains (ex: ‘(a%b)%c’ will become ‘a%b’)”
Fixes issue #1991 (Editor) : “Crash when closing effect window not saved after curve modification”
Fixes issue #1983 (Editor) : “Closing FX without saving is insanely slow even in non-debug build”
Fixes issue #1973 (Editor + Runtime) : “Loop Determinist Seed doesn’t work”

Other fixes

Fixes issue #1974 (Editor) : “Setting a float3 node with a 3D_Coordinate semantic resets the previously given float3 value”
Fixes issue #1980 (Editor) : “Sampler Shape ‘Mesh Scale’ property propagtes to other Shape types”
Fixes issue #1986 (Editor) : “Sliders: Bad handling of min/max values when dragging slider”
Fixes issue #1987 (Editor) : “Sliders: Inline edit inputbox is badly dimensioned”
Fixes issue #1179 (Editor) : “LineEdit : handle ‘ESC’ keypress to cancel edition”