PK-Editor v2.15

From PopcornFX
Jump to navigation Jump to search

Back to anouncements
Released Jan 18th 2023. This version is a Long Term Support version.
Make sure you upgrade your runtime / plugins as well before switching to this version.

Release highlights

Tweak values using mouse drag Shortcuts display in viewports Improved Editor & Project-settings browsing builtin efficient debug.drawValue
Tweak values using mouse drag Shortcuts display in viewports Improved editor & project-settings browsing builtin efficient debug.drawValue

PopcornFX 2.15 release highlights livestream

The full sources of the UnrealEngine, Unity, and O3DE plugins are freely available on github:

Source code is available for everyone, can be freely used, modified and shared under the Community License terms.
Note: UE4 & UE5 plugin archives are provided as 7z archives for better compression. They can be extracted using 7zip.

This release includes improvements & reviews for the O3DE plugin submitted by contributors via GitHub. Special thanks to them for their contributions:

AMZN-Olex, mbalfour-amzn, AMZN-alexpete, santorac, moudgils, kberg-amzn, galibzon, HogJonny-AMZN, moraaar, burelc-amzn, AMZN-Gene, lmbr-pip, akioCL


64-bits Windows build MacOS build Linux-64 build
PopcornFX-Editor_v2.15.9.17373_x64.exe (Latest) NewIcon.png
PopcornFX-Editor_v2.15.9.17373_x64.pkg (Latest) NewIcon.png
PopcornFX-Editor_v2.15.9.17373_x64.tgz (Latest) NewIcon.png

Changelog 2.15.9

Builds (Jun 1st 2023)

  • Fixed #12508: GPU sim: bool2/bool3/bool4 built at spawn aren't properly uploaded to GPU
  • Fixed #12481: Triangle renderer: Crash when a triangle has a constant position (over particles) for one of its vertices
  • Fixed #12502: Editor freeze & crash when hitting Ctrl+S in some effects with deep asset dependencies (since at least v2.13)
  • Fixed #11905: Editor rendering is broken when creating a project on a remote network drive with a path of the form '//'
  • Fixed #12509: Unity: Fix intermitent crash caused by effects with a short lifetime
  • Fixed #12332: Unity: Improved effects profiler UI
  • Fixed #12331: Unity: Migrate PKFXSettings to Unity settings
  • Fixed #12488: O3DE: Renderers GlobalSortOverride has no effect
  • Fixed #12487: O3DE: Gem is not compatible with Atom's new Vulkan memory allocator
  • Fixed #12486: O3DE: Gem does not register correctly in 23.05
  • Fixed #12484: O3DE: PopcornFX draw calls for are submit for all views including shadow cascades even when cast shadows is disabled
  • Fixed #12477: O3DE: PopcornFX runtime startup cleanup
  • Fixed #12467: O3DE: PopcornFX logs aren't logged into O3DE's log system
  • Fixed #12472: UnrealEngine: random crashes in shipping when emitters are destroyed/recreated by GC
  • Fixed #12471: UnrealEngine: PSO caching does not work with default vertex factory

Changelog 2.15.8

Builds (May 11th 2023)

  • Fixed #12459: Nodegraph: Using a debug.drawValue node makes the layer fall back to CPU sim
  • Fixed #12343: Mesh viewer: checkerboard texture isn't applied when enabling the option in the viewport
  • Fixed #12342: Editor: debug.draw* persists when paused and resetting the sim.
  • Fixed #12465: Unity: High memory usage of PopcornFX shaders due to high permutation count
  • Fixed #12438: Unity: Add import .pkkg support
  • Fixed #12437: Unity: Fix Particle stats showing incoherent timings
  • Fixed #12457: O3DE: Plugin doesn't work with the unified launcher
  • Fixed #12456: O3DE: Asserts at shutdown

Changelog 2.15.7

Builds (Apr 27th 2023)

  • Fixed #12415: Spatial layers leak performance & memory when the simulation is updated with dt = 0, goes back to normal as soon as the sim is unpaused. Only happened in SDK integrations & engine plugins, not in the editor.
  • Fixed #12412: Incorrect value-ranges computed from 'extract payload' nodes when layer is triggered from different parent layers and one of them doesn't append the extracted payload
  • Fixed #12418: F1 on renderer nodes opens a 404 page instead of opening the proper documentation page
  • Fixed #12417: F1 to show the documentation of local templates does not jump to the proper location in the documentation page, only works for public templates
  • Fixed #12433: Unity: IndexOutOfRange when registering a camera without enough layer mask set

Changelog 2.15.6

Builds (Apr 13th 2023)

  • Fixed #12368: Using the Attractor node without wiring in the input 'Position' freezes the effect compiler and causes the effect editor to hang when closed
  • Fixed #12264: Cannot set a switch node to have 6 cases if it was previously set to the default value
  • Fixed #12373: Importing/Exporting a package that contains filenames with unicode characters replaces those characters by '?' or '_'
  • Fixed #12280: Moving a 3DCoord attribute with the viewport gizmo does not update the default value reset indicator
  • Fixed #12172: Property grid: math expressions do not have any effect on values associated with a slider
  • Fixed #12329: Performance regression when compiling nodegraph
  • Fixed #12283: Compiler: incorrect display when switching to Shipping mode
  • Fixed #12271: Node creation dialog: Typing 'pi' doesn't work, even though it works in regular numeric inputboxes
  • Fixed #12326: UnrealEngine: UE5.2 preview support
  • Fixed #12374: UnrealEngine: drop vs2015 support
  • Fixed #12321: Unity: PKmm builder fail to output a file in Unity project
  • Fixed #12358: Unity: effects profiler displayed timings are 'flat' simulation time instead of estimated wall time
  • Fixed #12239: Unity: Renderer CameraSortOffset does not work
  • Fixed #12361: O3DE: DX12 driver crash related to BillboardDistortion shader
  • Fixed #12341: O3DE: crash with null rhi
  • Fixed #12334: O3DE: could not compile without O3DE_USE_PK defined for headless servers
  • Fixed #12337: AE: Reimport effect button doesn't update effect correctly

Changelog 2.15.5

Builds (Mar 30th 2023)

  • Fixed #12275: Editor: crash when .fbx file is modified on disk while mesh viewer is opened for that mesh file
  • Fixed #12273: Rendering: Visual flickering of mesh particles when MeshLOD is enabled
  • Fixed #12261: Mesh importer: Animation files added through the BAT export window aren't taken into account at export time
  • Fixed #12259: Mesh importer: BAT export window incorrectly translates animation paths
  • Fixed #12299: Nodegraph: F1 on some builtin nodes does not jump to the proper section of the online documentation page
  • Fixed #12192: Nodegraph: deleting a node disconnects unrelated event wires
  • Fixed #12302: Propertygrid: Right-click 'Copy color' on a color widget doesn't work if the property is disabled (due to a wire being plugged in the pin for example)
  • Fixed #12263: Unity: IOS compile error due to distortion
  • Fixed #12284: Unity: Animtrack fails to load
  • Fixed #12255: Unity: Alpha remap cursor on mesh renderer is reversed in Unity
  • #12240: Unity: Switch all Legacy mesh shaders to double-sided
  • Fixed #12290: O3DE: Ribbon particles rendering artifacts when RHI is Vulkan

Changelog 2.15.4

Builds (Mar 9th 2023)

  • Fixed #12246: Editor: crash when importing some skeletal meshes exported from Maya
  • Fixed #12231: IR Panel: Compiler tab shows constant values as "0.0", when they are smaller than 1.0e-6. Only an UI display bug, actual compiled values are correct.
  • Fixed #12243: UnrealEngine: Add an option to enable bake D3D11 & D3D12 GPU sim bytecodes when importing an effect
  • Fixed #12242: UnrealEngine: crash when level contains GPU simulated effects when RHI is D3D11 in UE5.1
  • Fixed #12234: UnrealEngine: compilation fails on Linux
  • Fixed #12232: UnrealEngine: imported effects do not simulate on GPU anymore when RHI is D3D12 in UE5.1
  • Fixed #12257: O3DE: Renderer Loader fails to load the model when not connected to the asset processor
  • Fixed #12251: O3DE: Effect asset type id is not publicly exposed

Changelog 2.15.3

Builds (Feb 23rd 2023)

  • Fixed #12204: Editor preferences panel: Version control tab resize the category column
  • Fixed #9739: Editor: missing vs2010 vcredist, cannot launch editor on fresh Windows installs
  • Fixed #12186: Script editor: Shift+insert paste shortcut does not properly sanitize the clipboard text, only Ctrl+V does.
  • Fixed #12182: Layergraph: layers which are never triggered due to optimizations removing the trigger or generate nodes are not disconnected anymore and stay in the final baked effect
  • Fixed #12217: UnrealEngine: crash when duplicating emitter actors
  • Fixed #12216: UnrealEngine: crash when emitter playing in scene actor while having events registered on another scene actor, and other scene actor gets destroyed
  • Fixed #12211: UnrealEngine: crash when active emitter's parent effect is unloaded in cooked builds
  • Fixed #12191: UnrealEngine: Mesh default materials sample textures with incorrect UVs when MeshAtlas is disabled
  • Fixed #12208: Unity: Skinned mesh renderers have incorrects bounds
  • Fixed #12203: Unity: custom bindings for materials produce an error in the UI

Changelog 2.15.2

Builds (Feb 9th 2023)

  • Fixed #5049: Crash when undoing operation that caused a graph compilation error, and an attribute sampler is bound
  • Fixed #12117: UnrealEngine: cannot build executables for Android / Oculus Quest2
  • Fixed #12135: Cannot set attribute slider value using right-click
  • Fixed #12126: Editor-Mac: Opening an effect editor displays an error (failed to initialize OpenGL)
  • Fixed #12168: Mesh importer: Does not select the default animation by default anymore
  • Fixed #12158: Mesh importer: crash when importing some mesh animations
  • Fixed #12181: Build version dropdown is never visible on effects that did not override the preview build version before 2.15
  • Fixed #12143: Effect backdrops that are only spawned through effect-interface external events are never triggered properly unless 'AutoStart' is checked.
  • Fixed #12125: Color-picker: Sometimes crashes when tweaking color sliders on color attributes
  • Fixed #12163: Nodal editor: Creating a template from a bunch of nodes whose input wires cross passthroughs never picks up the correct name, always uses the generic "Value" naming
  • Fixed #12162: Nodal editor: Creating a template from a bunch of nodes whose input wires cross passthroughs never picks up the correct type, always sets it as 'auto'
  • Fixed #12161: Nodal editor: Create input node from pin: Does not always set default value to pin's value
  • Fixed #12170: Nodal editor: Input nodes of type event do not properly display their output pin as an event pin
  • Fixed #12150: Nodegraph: Resource nodes at layergraph level do not show warnings. Warnings are shown in the layers they are used in, but not in the layergraph.
  • Fixed #12152: Texture viewer: Cannot save any format to LA16F or LA32F
  • Fixed #12151: Image sampling & Texture viewer: .hdr files cause extremely bright texels to wrap to negative values on some CPUs when loaded, resulting in black spots on overbright areas
  • Fixed #12148: Node creation dialog: Search results are sometimes weirdly sorted
  • Fixed #12144: IR Panel: When a layer is entirely optimized out (happens mostly in shipping), the 'Compiler' tab incorrectly says the layer failed compiling, and asks to check the compilation errors
  • Fixed #12141: Incorrect new project location path, misses a '/' in the path
  • Fixed #12136: Propertygrid: Slider right-click to edit value does not validate value when using 'TAB' to edit next value, or when clicking elsewhere. Cancels the edit, should instead validate it.
  • Fixed #12105: Editor: can't edit viewport input boxes using Ctrl+Mouse move
  • Fixed #11907: Editor: renaming an effect does not patch its own templates
  • Fixed #12167: Editor: Add project name in the title bar of the content browser and asset windows
  • Fixed #12166: Audio files with filenames containing special unicode characters appear with no thumbnail in the content browser and do not playback properly in an effect
  • Fixed #12012: Exported events are not triggered when they have no payload attached
  • Fixed #12174: Shape sampler box: Build parametric coords regular function sometimes produces a few incorrect samples due to a stack use-after-scope bug in the last iterations of a SIMD loop unroll (couple years old bug, never caught before)
  • Fixed #12149: Texture loader: When loading dds with BC4 compression (not natively supported by popcorn runtime), loader incorrectly expands them to BGRA8 instead of Lum8
  • Fixed #12130: Image sampling is broken in CPU & GPU sim for non-power-of-two DXT1 (BC1) textures when the size is not a multiple of the block size, in both 'point' and 'linear' modes
  • Fixed #12129: Image sampling is broken in CPU sim for non-power-of-two textures when sampling in 'linear' mode
  • Fixed #12127: Image attribute samplers: SampleDensity and RemapDensity are broken when using an atlas and different per-instance textures are bound at runtime to the same attribute sampler
  • Fixed #12153: Runtime: Cannot load LA32F / LA16F / RG32F / RG16F textures into CPU textures

Changelog 2.15.1

Builds (Jan 26th 2023)

  • Fixed #12089: Re-loading a custom layout will keep the unsaved changes since the last time you loaded it
  • Fixed #12083: Content browser doesn't show warnings on some effects
  • Fixed #12092: GPU spatial layers glitches when CellSize is small
  • Fixed #12107: Exporting a package sometimes pollutes the 'Thumbnails' directory with auto-generated texture thumbnails
  • Fixed #12103: Export to package does not properly auto-generate thumbnails of assets whose thumbnails should be auto-generated (Texture-altases, Textures, Sounds, ...)
  • Fixed #12106: PK-Editor.exe commandline help arg '-h' or '--help' on windows does not show anything
  • Fixed #12095: Project Launcher: Package details shows some corelib files in some packages
  • Fixed #12086: Editor: do not display the eye icon to display a saved password when logging in
  • Fixed #12076: Editor auto-translations: Some tooltip contents are translated when they shouldn't be
  • Fixed #11419: Editor: Memory inspector panel does not display GPU simulation bytecode size
  • Fixed #12119: AssetBaker: Ignores per-effect .pkcf configs, only for effect configs (works for other assets such as textures, meshes, etc...)
  • Fixed #12113: UnrealEngine: Re-enable VRP pass when importing / baking effects
  • Fixed #12102: UnrealEngine: PopcornFXVertexFactory.ush doesn't compile in UE4
  • Fixed #12100: Unity: Rendering break when using procedural altas with no subdivision
  • Fixed #12091: Unity: Camera support slider do not dirty the scene when modified

Changelog 2.15.0

Builds (Jan 18th 2023)

Templates & Corelib

  • #11930: Corelib: remap node: Add an optional 'clamp' checkbox that allows to clamp the output value to 'outMin' / 'outMax'
  • #11917: Corelib: Add a 'kill' input pin to the multiplier node to allow cleanly stopping infinite multipliers based on a custom condition

Simulation & Rendering

  • #11980: Add a random node that takes an explicit seed
  • Fixed #12074: GPU sim D3D11: does not properly kill newborn particles
  • Fixed #12013: When Spawning more that 255 particles there's always one more particle spawned
  • Fixed #12023: Incorrect vignetting with over-exposed scene in editor viewport
  • Fixed #7474: Glitch with transform UV, atlas and mipmaps
  • Fixed #12065: Shader compile error on vulkan

Editor (General)

  • #8213: Settings: add a search bar on the user and project settings
  • #11918: When pressing a modifier key in a viewport, display the list of associated shortcuts
  • #11304: Save layout/choose between several layouts
  • #8957: Project Launcher: Add new tab with download access buttons for plugins
  • #8503: New project dialog: Does not remember location of previous projects
  • #9178: Editor UI: The new dropbox for assets selection is not intuitive.
  • Fixed #12067: Editor: crash when importing animation/skeleton of .fbx file
  • Fixed #12050: Missing dependency on popcornfx installer
  • Fixed #12048: Editor: vulkan: crash / glitch in cubemap generation
  • #11968: Project settings & Editor settings: Add a short description to some "obscure" panels to quickly explain what those settings do.
  • #11807: Project settings: Add per-project feature configuration (samplers, sim interfaces, etc...)
  • #11967: Search boxes in the editor: Search with a '!' negation symbol does not work, contrary to what is described in the search tooltips
  • #11957: Content browser details view: When a column item is "N/A" or "0", display text in a dimmer color, so that it doesn't distract from the actual data present in other cells
  • #11774: Right-click export to package: In final export dialog, add a "Copy path to clipboard" button

Effect editor

  • #5437: Attributes: Editor-only "local" Attributes
  • #11834: Attributes: When value is setup as an enum, use a dropdown widget like for enum template properties
  • #11823: Attributes: Add an optional "one-shot trigger" control for bool attributes (ex a push-button) in addition to the checkbox
  • Fixed #11954: Attributes: Text attribute sampler external file path does not properly refresh on Ctrl+Z
  • #8462: Propertygrid: allow edition of 'auto' values
  • #5482: Propertygrid: Allow editing numeric values with a slider / mouse cursor instead of typing values with keyboard
  • #8533: Propertygrid: Color properties: Allow right-clicking on the color widget to copy or paste the color
  • #12041: Propertygrid: setting a float value and changing the type to int resets the value
  • #11958: Propertygrid: For properties with a "Scale" semantic, make the UI have the float3 channels "locked" together so that setting a single channel broadcasts the value to all channels
  • Fixed #11969: Propertygrid: Asset picker: need to press down arrow key twice instead of once to select items in the asset list popup
  • #11970: Propertygrid: Asset preview widget: Display the number of LODs of mesh assets that have LODs
  • #11781: Propertygrid: Pressing TAB key does not enter edit mode for next property if it's a slider
  • #6869: Curve editor: allow editing tangents of all selected control points
  • #5161: Curve Editor: Allow snapping keyframes to other channels
  • #11820: Curve Editor: Applying a 1D curve preset should not stomp the curve dimensions, but instead apply the preset to the active channels
  • #7486: Mesh backdrop: Allow specifying Lit-related texture maps
  • #11873: Effect editor: 'LoopDeterminismConstantSeed' in scene properties should be OFF by default
  • #5058: Effect treeview: Add search box in layer treeview, in addition to existing template treeview search
  • #12008: Move the particle-debugger buttons from the viewport toolbar to the nodegraph toolbar
  • #3925: Editor: Add markdown support for user strings (annotations & descriptions), in addition to current HTML tags
  • #9083: IR-panel: Show the list of all spatial-layers in the effect
  • Fixed #12043: Crash when sampling texture attribute sampler bound to editor render target and viewport is resized (CPU sim)

Nodal editor

  • #11831: Add per-particle 'debug.drawValue()' debugging helper, that can display a text value next to the particle onscreen.
  • #11835: New switch node: takes an 'int' value and 'n' input pins, as well as 'n' values to compare the input against, and internally chains 'if' nodes to output the input pin corresponding to the current value.
  • #11928: New 'round' node, allowing to pick between different rounding modes
  • #11842: Allow deprecating templates so they are hidden in the node creation menu and emit a deprecation warning when used in an effect
  • #11991: Nodal editor: Select all nodes upstream or downstream of the current selection with 'Home' and 'End' keys
  • #11953: Nodal editor: Node creation dialog: Renderers are listed as "Mesh", "Billboard", "Light", "Sound", "Triangle"... without specified that it's a renderer, can be confusing when reading the node list. Should instead say "Mesh Renderer", "Light Renderer", ...
  • #11895: Nodal editor: Make 'DefaultValue' input of template input nodes not visible by default, rarely used, and now adds unnecessary visual noise with the pin-values displayed by default since 2.14
  • #11880: Nodal editor: Curve previews in node: Normalize the preview below [0,1] so that very small curves do not appear as a flat line at the bottom of the preview, but instead can have their curve shape be visualized properly
  • #11878: Nodal editor: Always show pin values by default
  • Fixed #5910: Nodal editor: Plugging a wire on a passthrough which is too close to another passthrough wires it into both passthroughs
  • Fixed #11961: Nodal Editor: Ctrl+G offsets the new node position compared to the old node, causes wires to be slightly unaligned
  • #5861: Nodal editor: Double-click on a post-it or annotation: Pop text edit window to edit contents
  • #11879: Nodegraph: Display default values of 'auto' pins as '0' instead of 'N/A'
  • #8884: Input/Property nodes in the root layer graph should produce errors or warnings

Compiler & Optimizer

  • #11908: Compiler: Value-range propagation: Compute proper value-range of VectorField sampler in 'Procedural Turbulence' mode
  • Fixed #11965: Value-range propagation (Nodal editor & Runtime): 'reinterpret' nodes (asFloat and asInt nodes) do not properly transmit constant ranges
  • Fixed #11909: Value-range propagation of rotate function always propagates full rotation range even when input rotation is constant
  • Fixed #5280: Value-range propagation: unable to produce a [-1,1] range for normalization patterns
  • Fixed #12072: Value-range propagation: miss to detect all-negative ranges for scalars or vectors smaller than 4 dimensions
  • Fixed #11931: Value-range propagation: Range::Ceil/Floor/Trunc/Round functions do not properly handle the edge inclusive/exclusive state
  • Fixed #11964: Bitwise AND node with an 'int' and a 'bool' input does not broadcast the bool to int, only ends-up AND-ing one bit and clearing the 31 others, outputs an int with only the least-significant bit set.
  • #12033: Scripts: New horizontal bi-lerp function 'hblerp' to efficiently perform bilinear interpolation on transposed 2x2 tiles sampled from a texture sampler

Texture viewer

  • #7509: Texture viewer: allow specifying preview texture atlas path or atlas sub div

Mesh viewer

  • #12042: Mesh viewer: layout is reset when re-opening window
  • #11971: Mesh viewer: Show LOD information in the asset details panel
  • #12075: Add an animation index to the mesh animation importer to choose which animation contained in the FBX should be used

Material editor

  • #7732: Material editor: crash when changing the main "Geometry" rendering feature from one renderer type to another

Plugins & Third-Party

UnrealEngine plugin

  • #12094: UnrealEngine: crash when launching editor when project has instanced stereo rendering enabled

Unity plugin

  • #12073: Unity: Description for attributes and samplers in tooltip
  • #12047: Unity: Add settings to choose in which layer each camera should have its particles rendered
  • #12020: Unity: Refactor exported events payload data to use vector Types
  • #12018: Unity: Material keywords are not bound in 2021.3
  • #6482: Unity: Shadergraph support (URP)
  • Fixed #12017: Unity: huge iOS libraries size


  • Upgrade @ v2.15.0.14729: Template export input node: Make 'DefaultValue' pin invisible by default

Content examples update

New "Tutorials" effects

Debug draw value Rand seed Rand seed offset
Showcases the new debug.drawValue node
Shows the new seeded rand node
Shows seed offsetting (fast-forward)