PK-Editor v2.8
Jump to navigation
Jump to search
Back to anouncements
Released Jan 7th 2021. (preview-1 released Dec 10th 2020)
make sure you upgrade your runtime / plugins as well before switching to this version.
! IMPORTANT ! After upgrading a project to 2.8.0, make sure you clear your shader-cache by doing 'Edit > Clear shader cache' ! |
---|
Contents
Release highlights
![]() |
![]() |
![]() |
![]() |
Builtin effect prewarm | GPU-sim mesh renderers | Graph coordinate-frame view | Multiple inputs for math nodes |
Download
64-bits Windows build | MacOS build | Linux-64 build | ||||||
---|---|---|---|---|---|---|---|---|
|
|
|
Changelog 2.8.1 patch
Builds (Jan 14th 2021)
- Windows: PopcornFX-Editor_v2.8.1.4588_x64.exe
- macOS: PopcornFX-Editor_v2.8.1.4588_x64.pkg
- Linux: PopcornFX-Editor_v2.8.1.4588_x64.tgz
- Fixed #6023: Effect interface: Crashes when hovering while async compile is in progress (async compiles are disabled by default in v2.8.0)
- Fixed #6399: Can set negative life in 'SetLife' node, produces buggy simulations
- Fixed #6407: Curve editor: Crash when swapping curve channels when curve is in 'Linear' mode and has more than 3 control-points
- Fixed #6406: Curve editor: Add 'Reset tangents (flat)' option to reset tangents to 0
- Fixed #6405: Curve editor: 'ResetTangents' resets all the tangents instead of only the selected control-points
- Fixed #2787: Curve editor: Doesn't show Min/Max value limits in the curve editor viewport (even though runtime correctly takes them into account in the simulation)
- Fixed #6379: GPU sim: Some shape functions are broken
- Fixed #6459: GPU sim: Random crash in effects with lots of GPU sim layers
- Fixed #6380: GPU sim: Random compiler crash when using 'box.project()' or any node that performs projection on a shape of type 'box'
- Fixed #6451: Occasional crash with decal renderer
- Fixed #6404: Double-clicking in a numeric inputbox does not select the entire value
- Fixed #6362: Material editor: custom materials without "Opaque" or "Transparent" rendering features aren't rendered
- Fixed #4176: Editor sometimes writes corrupt files when writing in text format
- Fixed #6364: UE4: Light particles cannot affect volumetric fog (requires to use UE4_Light material from Content Examples project)
- Fixed #6450: UE4: Volumetric fog default material (requires UE4_VolumetricFog material from Content Examples project)
- Fixed #6363: UE4: Only lights from a single renderer are displayed when several light renderers are present in the scene
- Fixed #6460: UE4: GPU simulated effects fallback on CPU sim
Changelog 2.8.0
Builds (Jan 7th 2021)
- Windows: PopcornFX-Editor_v2.8.0.4373_x64.exe
- macOS: PopcornFX-Editor_v2.8.0.4373_x64.pkg
- Linux: PopcornFX-Editor_v2.8.0.4373_x64.tgz
Assets & core-lib
- #5685: 'remap' node: Allow inline-editing min/max inputs, without having to create constant nodes.
- #5640: 'vrand' node: Add "Scale" property to allow quickly scaling the output beyond a radius of 1.0
- #5785: Add 'Spawn on Texture' master-template
- #5784: Add 'Spawn on Mesh' master-template
- #5745: Add 'MeshSample' master-template
- #5787: Add 'TextureSampleNormal' and 'TextureSampleDisplacement' helper nodes
- #6154: 'ShapeSample' & 'MeshSample' nodes: Expose position/orientation/scale helper input to easily transform the output sampled data
- #5815: 'EventMultiplier': Add LOD controls
- #5750: 'EventMultiplier': Add "RandomCount" control
- #5645: 'EventMultiplier': Change the default values so it's faster to setup in the most common case
- Fixed #5911: 'Physics' & 'TurbulenceSample' nodes: Cannot scale vector-field, 'Scale' property is in fact the scale of the output vector (ie: a 'Strength'), not the scale of the actual field
- #5646: Add new high-level 'Physics' template that encapsulates most common "physics" behavior: the old "Physics" node, wind controls, and collision
- #5741: 'Collision' node: Remove top limit of 255 maximum bounces
- #5649: 'Collision' node: Add missing inputs & outputs: 'Localspace' input when colliding with a shape, and CollisionPos/Normal + Hit fraction outputs
- #5734: 'scene.intersect': Make it a sim interface so it can be overridden in the GPU sim + expose sphere sweep parameters
- #5724: 'Attractor' template: add way to dynamically offset & rotate the attractor
- #5643: 'LimitDistance' template has no builtin 'Localspace' property
- #5642: 'Containment' template has no builtin 'localspace' toggle, should be in localspace by default.
- #5654: 'blackbody' node: Add a temperature unit property to tell which units the input temperature is in
- #5673: Add new 'toFloat', 'toInt', and 'toBool' cast helper templates
- #5639: 'asInt' and 'asFloat' nodes are error-prone for artists: Rename them to the more explicit 'reinterpret.asInt' and 'reinterpret.asFloat'
- #5641: Improvements over the board: Add missing descriptions, search keywords, more outputs on some nodes, etc...
- #5888: Simulation interfaces: Unify 'scene.sampleWindField' with 'scene.intersect'
- #5996: Corelib & scripts: 'sim' namespace: Add 'isRunningOnGPU' node & script function
- #5995: Rename 'self.isDeterministic' to 'sim.isDeterministic', more consistent with what it represents
- Fixed #5797: Template: 'drawVector': Cannot change material blending mode & distance sorting settings, unlike 'drawLine'
Nodegraph
- #5682: Export nodes: Allow to expose a list of multiple "allowed" types, not just `auto`
- #5461: Support for multiple inputs for basic math nodes: add, mul, min, max, or, and, ...
- #4936: Events payload extract nodes now automatically extract from the parent payload when the node has nothing wired into its 'parent' input
- #5370: Add node to lerp between orientations
- Fixed #5738: Using a node that internally contains a sim interface inside the layergraph, and wiring it into a layer's input data pin works, but still displays an error.
- Fixed #5287: Incorrect resolution of some output pin types
- Fixed #5278: all orientation nodes & functions are reporting a [-inf,inf] range, instead of [-1,1]
- Fixed #5277: all view.axis* nodes are reporting a [-inf,inf] range, instead of a normalized unit-vec range. Prevents some optimizations from happening
- Fixed #2389: Nodegraph: Construct 3D Vector node triggers errors when set to SUF_RightHanded or SFU_LeftHanded mode
Nodal editor
- #5860: Annotations: Allow scaling overall annotation size, to make smaller, or larger, annotations + Add "post-it" display mode
- #5506: Allow drag & dropping assets from the content-browser or OS explorer into the nodal editor to create new resource (sampler) nodes, or on existing resource nodes
- #5859: Do not display "ExecFrequency" and "ExecStage" for nodes where they have no effect
- #5324: Detect what type of graph we're in, and show the info to the user with a visual clue
- #5325: Node creation dialog: hide inappropriate node types based on the type of graph we're currently viewing
- #4439: New Localspace/Worldspace view
- #6124: When grouping nodes, look at what nodes are grouped, and automatically set the new subgraph's 'ClassType' based on what nodes are being grouped
- #5950: Nodal editor: Add option in user settings to display all inline pin values even when they are zero
- Fixed #5743: Creating an input or output node by dragging a wire from an existing pin copies all properties, except the pin description
- Fixed #5742: Nodegraph tooltip formatting: When using <ul> and <li> to format lists in descriptions shown in tooltips, using newlines messes up the final formatting
- Fixed #5719: Deleting a node does not properly rewire inputs to outputs like Ctrl+T does (ignores the "PassthroughInput" property of output pins)
- Fixed #5665: Occasional crash when hovering an event wire
- Fixed #5845: Ungroup nodes: Does not behave properly with auto-exported properties (special case with pins)
- Fixed #5739: Ungroup nodes: Does not behave properly with auto-exported properties
- Fixed #5727: Using the mouse "back" button too fast registers as a double-click and opens the node under the cursor instead of going back twice
- Fixed #6153: Pulling a wire out of a pin which already has something wired in and popping the node creation dialog does not show all the nodes that can be wired in
- Fixed #2596: Unplug pin on construct Vec3 generate compile error while baking
- Fixed #6034: Wire highlight ignores the "Passthrough input" property of output nodes when walking back nodes
- Fixed #5953: Nodal editor: Hovering wires is hard to see, improve highlight feedback visibility
- Fixed #5952: Nodal editor: Add more options in user settings to control pin value display
Simulation
- #5421: Effect prewarm (/ pre-roll / warmup)
- Fixed #5886: Curves in non-exact mode (faster, low-quality sampling) fallback to full precision exact mode when sampled with a wave-constant value.
- Fixed #5792: Texture sampler: 'dimensions()' getter doesn't work if the image isn't sampled.
- #6058: CPU sim: Constructing a float2 vector from two float values is slow.
- Fixed #5766: Unnecessary overhead when particles with side-effects die (since v2.4.0)
- Fixed #5958: Sampling UV2PC from a mesh whose texcoords for an empty rect induces a MASSIVE performance hit.
Simulation: GPU
- #5355: GPU sim: implement sorting for vertexbb billboard particles in editor
- Fixed #4996: GPU Sim: regenerating compute shader source at runtime creation generates longer load times
- Fixed #4837: GPU sim: Inaccurate bounding boxes for billboards
- Fixed #5816: GPU sim: DataGeometry input node causing fallback to cpu
- Fixed #5956: GPU sim: Instant crash in compiler when using 'shape.type()' in a GPU layer
- Fixed #6152: GPU sim: Shape sphere: Ignores shape rotations.
- Fixed #6151: GPU sim: Shape 'sampleNormal' does not properly take into account shape transforms for most shape types
- Fixed #6150: GPU sim: Shape sampler ellipsoid: Sampling normals falls cause a shader compile-error and falls back to CPU sim
- Fixed #6149: GPU sim: Shape sampler cylinder: Normals sampled in 'surface' mode with a nonzero inner-radius are messed-up and randomly flipped
- Fixed #6148: GPU sim: Mesh sampler: sampled normals are incorrectly scaled by mesh scale.
- Fixed #6147: GPU sim: Shape sampler ellipsoid: Normals are incorrect when ellipsoid scale is not uniform
- Fixed #6145: GPU sim: Shape sampler cylinder: Instant crash at graph compile time / baking, when sampling normals.
- Fixed #6141: GPU sim: Cone volume sampling is broken, samples a pseudo-cylinder
- Fixed #6140: GPU sim: Cylinder volume sampling reverses parametric coordinates X and Z coordinates, making it incompatible with CPU sim & other pcoords manipulation functions
- Fixed #6139: GPU sim: Cone volume sampling uses broken parametric coordinates layout, incompatible with CPU sim & other pcoords manipulation functions
- Fixed #6137: GPU sim: shape.buildPCoords* functions & nodes are not supported, and fallback to CPU sim
- Fixed #6131: GPU sim: Cone sampling fallsback to CPU
- Fixed #6130: GPU sim: Sampling a mesh coming from an inline property emits incorrect compute shader code, fails compiling & falls back to CPU
- Fixed #6068: GPU sim: Random crashes when editing layer
- Fixed #6060: GPU sim: Texture sampler ignores 'linear' filter flag, always samples as point
- Fixed #5710: GPU sim: using modulo with integers make the layer fallback on CPU when shaders are compiled with /WX
- Fixed #5589: GPU sim D3D11: Release assert on AMD cards
- Fixed #6127: GPU sim D3D11: Sampling anything other than 'Position' from a mesh is broken
- Fixed #6063: GPU sim D3D11: Sampling BGRA4 textures cause runtime conversion & fallback to BGRA8 on load even if HW supports it.
- Fixed #5957: GPU sim D3D11: Instant crash when sampling a texture defined through a template property
- Fixed #5532: GPU sim D3D12: particles don't spawn correctly with "complex" effect instancing
Rendering
- #5591: Lit and tinted distortion material
- #3754: Add CameraSortOffset property for sorted particles as an additional sorting override
- #6426: GPU mesh particles
- #5675: Editor PostFX: Add FXAA
- #5009: Editor PostFX: Add vignetting post-effect
- #5830: Editor PostFX: Add dithering postFX
- #5527: Materials: All .pkma files should now have a valid .frag/.vert shader path
- Fixed #5813: Mesh renderers vertex color alpha isn't taken into account in material shaders
- Fixed #5705: Renderer's DrawOrder property cannot be auto-exported
- Fixed #5360: Materials: Atlas_SubUVs is not visible to shaders
- Fixed #5017: Capsule aligned billboards: Incorrect 'Size' value, incoherent with other billboarding modes: the 'Size' value should be the width/height, but is used as the diagonal
- Fixed #5773: Renderers: Wiring a float in the 'Enabled' pin produces a compile error
- Fixed #6006: White editor viewport when having a triangle renderer and the billboarding-mode is geom-billboarding
- Fixed #5869: Buggy lighting when pausing and 'FreezeBillboardingWhenPaused' is checked
Editor
- #5933: Login: Remember password when checking 'RememberMe'
- #5386: Baked effect memory usage inspector
- #6201: Editor baking: Allow seeing bake errors or warnings when baking from editor.
- #5812: Ability to resave a list or all effects and templates from a project
- #6225: "Help" menu: Add an "Advanced" entry allowing to reveal both the editor logfile, and the AppData folder, in an explorer window
- #5768: Allow to disable corelib sim interfaces per-project, and add 'experimental' category in project settings to expose opt-in new features in early-access
- #6213: User settings: External Applications: Add missing asset types
- #5824: Editor: add AfterEffects project preset in project creation dialog
- Fixed #5587: No user feedback on what the editor is doing when opening a project, sometimes freezes for tens of seconds, sometimes not. Now shows a progress window when it isn't instant.
- Fixed #5862: Editor has very poor reporting when a file has been corrupted and fails to load it
- Fixed #6220: External applications (windows): Editor auto-detection sees some extensions as not openable, when in fact they are
- Fixed #6219: External applications: Bad handling of unicode when displaying application pretty name in editor menus
- Fixed #6199: Static effect dependency report: Static dependencies are not reported with the proper asset type
- Fixed #6197: Some editor operations that process effect files (such as replacing dependencies or renaming public templates) will pop load error dialog for every effect in the project which has load errors.
- Fixed #6188: .pkcf files which have been autosaved do not appear in recovery list
- Fixed #6356: Project launcher: Double-clicking on a project with a higher minor version, with no more recent editor build installed, will still open the project, despite the editor UI saying it can't be opened.
- Fixed #6355: Project launcher: Double-clicking on a project should open the project with the current editor version if it's a more recent _patch_ than what the project is set to
- Fixed #5934: User settings file: Incorrectly reloaded when revision ID changes (between patches), always reuses the first one in the list when listing all settings file in the directory
Effect editor
- #1143: Implement File > SaveAs
- #5486: Scene properties panel: Display as backdrops treeview
- #5348: Update backdrop transforms using gizmo
- #5385: Asychronous graph compilation (disabled by default in 2.8.0, will be enabled by default in 2.8.1. Can be controlled in the effect editor preferences)
- #5609: Add 'Capture static bounds' option
- #5608: Add a way to visualize the effect's static bounds
- #5706: New renderers summary panel allowing to view renderers used in the effect and how they are batched
- #5658: Script editor: When pasting text, replace unicode math characters with their valid equivalents in PK-Scripts
- #5656: Script editor: Detect unsupported unicode characters such as '−', '×', which can happen when copy/pasting formulas from a website, and give a more comprehensible error to the user.
- Fixed #5657: Script editor: Incorrect error highlighting placement when script contains unicode characters
- #5294: Debugger: add buttons and shortcuts to select the next and previous particle
- #5925: Grid should be double-sided by default
- Fixed #5882: Texture sampler: Broken sRGB conversion on-load.
- Fixed #5488: Effect treeview: Clicking on the root node should display the global effect properties.
- Fixed #5855: Color picker: Hitting 'enter' in an inputbox should not validate & close the window, it should validate only the inputbox.
- Fixed #5852: No way to specify procedural atlas in texture node, "U * V" atlas specification only possible in renderer nodes / materials.
- Fixed #6062: Samplers with empty paths get constant-folded in shipping only. Prevents some layers to be dispatched on the GPU sim in-editor.
- Fixed #5955: Simulation runtime warning messages in viewport only last one frame, very hard to read
Propertygrid
- #5740: Allow resetting properties which are frozen by pin-rules
- #5671: Remember which categories have been expanded or collapsed
- #5650: Improve UI of node output pins: Allow auto-exporting output pins + display the regular "eye" icon to toggle visibility
- #6200: Allow opening an asset by Ctrl+clicking on its preview thumbnail
Graph compiler & optimizer
- #5857: Samplers: Add 'NeverOptimize' option on node, to skip ICB/CFL optimizer passes used on static sampler
- Fixed #5396: VRP: Cannot propagate ranges of bitwise ops when input ranges are constant (editor-only)
- Fixed #5286: VRP: rgb2hsv() and hsv2rgb() have poor handling of output ranges
- Fixed #5283: VRP: 'blackbody()' function has incorrect output range of [0, +inf], instead of [0, 1]
- Fixed #5281: VRP: No handling of functions tan(), asin(), acos(), atan(), and atan2()
- Fixed #5284: Optimizer: ICB: Various missed optimizations
- Fixed #6072: Optimizer: Fails to properly collapse some redundant xform calls
- Fixed #5853: Image sampler: Optimizer crash when 'remapDensity' is called with a non-constant filter mode
- Fixed #6036: Compiler: VRP of % operator is broken for floats
- Fixed #5791: Constant sampler folding in shipping doesn't work when sampler is defined via a property
- Fixed #5799: Texture 'sampleDensity' or 'remapDensity' calls are not optimized-out when the texture is empty and the filtering is set to 'point'
- Fixed #5802: 'remap' function: Incorrect handling of 'int' inputs
- #5285: CPU VM backend: strength reduction pass: Detect & simplify `select(0, x, b32)` to `and(x, b32)`
Plugins & Third-Party
UE4 plugin
- #4060: UE4: Chaos integration
- #6335: UE4: CollisionFilters system rework
- #6336: Editor: Add UE4 collision filters when creating a UE4 project
Lumberyard plugin
- #5899: LY: Attribute Categories
- Fixed #5715: LY: Crash when using custom mesh materials with material groups
- Fixed #5798: LY: Cannot start effect if the attribute sampler is not overriden
- Fixed #5788: LY: Crash when quitting game mode with an effect sampling parametric coordinates
- Fixed #6331: LY: crash after e_particlesQuality change
- Fixed #6330: LY: Sounds doesn't stop
- Fixed #5841: LY: Show/Hide entity in treeview doesn't work
- Fixed #5749: LY: Attributes with Color semantic should be editable using a color picker
- Fixed #6224: LY: mesh override not woking with opacity
- Fixed #5893: LY: Audio trigger doesn't stop after exiting game mode
- Fixed #6004: LY: Effect movement lag on fast camera movement
- Fixed #6025: LY: e_particles shouldn't disable PopcornFX particles
After-effects plugin
- #5960: AE: Added Reimport button in emitter interface to hotreload effects
- Fixed #5838: AE: Reloading Fx doesn't refresh it if new version is available
Upgrader
- Fixed #6215: Some upgrades do not properly process files in projects where all paths are forced to lowercase or uppercase
- New upgrader @ 2.8.0.972: User settings: Renamed various properties
- New upgrader @ 2.8.0.1072: Layer nodes: All layers must now have their sub-graphs be of class 'event'
- New upgrader @ 2.8.0.1422: Unify meaning of 'Size' property between capsule billboards and other billboard types
- New upgrader @ 2.8.0.1427: Transformed 'Scene' panel into a backdrop treeview: Split scene settings into backdrop objects
- New upgrader @ 2.8.0.1581: All feature-set files (.pkma) must now have a non-empty .frag path
- New upgrader @ 2.8.0.1690: Unified backdrop 'Enabled' properties
- New upgrader @ 2.8.0.2058: Removed legacy static bounds properties
- New upgrader @ 2.8.0.2998: Collision node improvements
- New upgrader @ 2.8.0.3104: Remove generic 'Data' data-type in nodegraph nodes
- New upgrader @ 2.8.0.3163: CoreLib template improvements: orientation.fromAxisAngle
- New upgrader @ 2.8.0.3203: Move 'DrawOrder' into 'Transparent.GlobalSortOverride' material property
- New upgrader @ 2.8.0.3482: Texture node: Add ability to specify a procedural UxV atlas
- New upgrader @ 2.8.0.3491: Multiplier node: Added 'SpawnCountRandom' property
- New upgrader @ 2.8.0.3496: User settings: Updated settings
- New upgrader @ 2.8.0.3506: Node property renames
- New upgrader @ 2.8.0.3562: Effect backdrop: Now off by default if the grid size is 1x1
- New upgrader @ 2.8.0.3563: Backdrop: Renamed properties
- New upgrader @ 2.8.0.3612: Corelib sim interface renames
- New upgrader @ 2.8.0.3655: CoreLib template renames, cleanups, and uniformization
- New upgrader @ 2.8.0.3676: Add new Core Shader Particle_Master.frag
- New upgrader @ 2.8.0.3768: Per effect instance time-scale: Replaced 'self.isDeterministic' by 'sim.isDeterministic'
- New upgrader @ 2.8.0.4000: CoreLib template renames
Content examples update
New "Tutorials" effects
![]() |
Tutorials/164_LevelOfDetail_MultiplierNode New LOD controls for the EventMultiplier node |