Change since release candidate 10
- Recoloring junction now update the color instantaneously.
- [PCX] Fix evaluation error when unary minus sign after the comma symbol.
Change since latest stable (1.15.0.1)
- [Workshop] Add a version tag in the workshop, thumbnail will also include the version number.
- Add an option to export the project as a portable zip file.
- Add option to use custom ImageMagick, WebP, Gifski and FFmpeg path.
- Add Patreon integration.
- Add preference option to clear temp folder on close program.
- Add support for .png palette.
- Globalvar can now be reordered.
- Improve general performance.
- Improve project loading speed.
- Reduce the amount of data unpacking on start.
- Update getting starts and sample project to the latest version.
Interface
- [3D Preview] Add a warning when changing preview settings while previewing the camera node.
- [Add node] Extra labels (new, deprecated) now appear when searching.
- [Animator] Animation controls will now be disabled while exporting.
- [Animator] Improve stability when reordering nodes.
- [Animator] Rework the timeline system.
- [Code editor] Autocomplete can now be applied with enter key and mouse click.
- [Code editor] Autocomplete now disappear when no match is found.
- [Collection] Add "uncategorized" group.
- [Collection] Add "your creation" tag when hovering on the Steam workshop item created by you.
- [Collection] Add a warning when updating workshop content without selecting any nodes.
- [Collection] Add the ability to rename workshop items.
- [Collection] Changing the metadata name now rename the file itself.
- [Collection] File name now used per character line break.
- [Collection] Increase preview size.
- [Collection] Updating workshop item now also update thumbnail basge.
- [CurveBox] Holding ctrl to snap value.
- [CurveBox] Improve display, grid, and zooming control.
- [Graph Panel] Creating array, blend, and compose from hotkey will connect the node in the order of the y positions.
- [Graph Panel] Improve rendering for text in nodes.
- [Graph] Add an icon to indicate if a node is preview disabled.
- [Graph] Add an option to fade out non-selecting connections for better visibility.
- [Graph] Add an option to scale the preview image and to make the image avoid labels.
- [Graph] Add context-based node suggestions.
- [Graph] Add highlight every 10 grid lines.
- [Graph] Add option to highlight all input connections recursively.
- [Graph] Add option to not render origin as think line.
- [Graph] Add preference to always open a group in a new tab.
- [Graph] Add the ability to copy/paste every property between nodes of the same type.
- [Graph] Add the ability to drag out multiple junctions at once. (I forgot which node caused the problem, so I'll just make it work without any modifier key for now).
- [Graph] Exiting node group will center the view to that group.
- [Graph] Frame node can now be selected when dragging from empty space.
- [Graph] Grid line now scales up based on line distance instead of the current zoom level.
- [Graph] Hold ctrl while dragging the output junction to disconnect multiple connections at once.
- [Graph] Holding ctrl while dragging junction to group now creates new input with the corresponding type.
- [Graph] Improve connection drawing quality.
- [Graph] Improve junction sprite rendering.
- [Graph] Improve rendering performance marginally.
- [Graph] Junction and node preview will also fade out when using the highlight mode.
- [Graph] Node and properties can be recolored.
- [Graph] Node can be selected while holding alt but can't be moved.
- [Graph] Scenes are centered when loaded.
- [Inspector, Color, Palette] Selecting a color from the color, palette panel now applies that color to the active input in the inspector.
- [Inspector] A project needs to be opened from the workshop tab to be able to update project content.
- [Inspector] Add option to switch to the inspector panel when double-clicking on a node (on by default).
- [Inspector] Add option to use Euler angle for 3D rotation.
- [Inspector] Add value reset button.
- [Inspector] Animated property is now displayed in different colors.
- [Inspector] Compact mode is now a toggle button instead of width-aware.
- [Inspector] Improve globalvar reordering visual.
- [Inspector] Long data (>1024 characters) will be displayed as "[Long String (N char)]" to prevent freeze (except in textArea).
- [Inspector] Range value shows only one textbox when the value is linked.
- [Inspector] Show properties of the current context (expect global) when not selecting any nodes.
- [Inspector] Textarea can now be pop out as a separate panel.
- [Inspector] Textbox now always displays as a new line.
- [Inspector] Updating workshop content now also update metadata.
- [Menu] Add an option to open a project in safe mode. (Shift + click on file > open)
- [Menu] Add option to import portable project file.
- [Menu] Fix the title menu overlapping with the taskbar button when using the Mac-style menu button in vertical mode.
- [Notification] Shell execution now shows up in the notification.
- [Preference] "Appearance" renamed to "Interface". Rearrange and remove preference to match its category.
- [Preference] Add an option to overwrite every non-monospace font.
- [Preference] Add option to change temp folder.
- [Preference] Add section to theme and hotkey pages.
- [Preview Panel] When not previewing any node, or previewing non-surface node (e.g. path) will scale to project default dimension.
- [Preview] Grid now uses vec2 for width and height.
- [Release note] Improve text display.
- [Release note] Right-click on version number to copy.
- [Slider, rotator] Now support shift + mouse wheel.
- [Text Inputs] Ctrl + backspace to delete word.
- [Text Inputs] Selecting text with the mouse now moves the cursor properly.
- [TextArea] Add configurable autocomplete delay.
- [TextArea] Add undo/redo inside the textbox.
- [TextArea] Improve mouse selection.
- [TextBox] Improve slider direction calculation.
- Add `meta.json` for themes.
- Add a popup warning on startup if the main directory is set to an inaccessible location (file not found, or no permission).
- Add a preference setting to set UI panning button to mouse side button.
- Add ctrl+shift+f10 to reset current theme (will also reset layout).
- Add reset button for most config dialog.
- Add warning when loading theme made for an older version.
- Bound minimum window size to 960*600.
- Improved setting dialogs.
- Improved the tooltip for enum buttons.
- Increase coverage of localizable texts.
- Note that there's a new font definition "h2". Please update your localization file to include this to prevent rendering errors.
- Pop-up dialog now uses the same color as the embedded version.
- Random rotator now comes with 3 extra modes.
- Reduce the height of most textboxes for higher content density.
- Replace most GameFrame functions with a more native Window Manager.
Nodes
- [3D camera] Now show render preview in the preview panel.
- [3D light] Gizmo color is now based on light color.
- [3D material] Add an anti-aliasing option.
- [3D obj] Add warning when loading model too large to preview.
- [3D Obj] Improve model loading speed.
- [3D obj] Now use non-blocking model loading.
- [3D plane] Add 2-sided plane mode.
- [3D repeat] Now use Euler angle for fixed rotation.
- [3D] Add anchor property.
- [Animation] Add canvas sizing property.
- [Array] 'Any' type will now show a widget based on the connected data type.
- [Array] Changing type will instantly change the input widget and disconnect type-incompatible connections.
- [Array] Will now show a preview for surface data.
- [Audio File In] Add mono conversion property.
- [Audio Volume] Volume calculation is now separated into a separate node.
- [Audio window] Now only accept audioBit datatype.
- [Audio window] Rework node internal. New cursor location, and step properties.
- [Audio] Now use audioBit datatype instead of pure array to improve performance.
- [Bar / Graph] Add color over value property.
- [Bar / Graph] Line graph now gains 1-pixel extra spacing.
- [Blend, Color Adjust, Blur, Palette Shift, Flood Fill, Bw, Level, Invert, Color Palette Replacement, Skew, Greyscale, Dilate, Edge Detect, Local Analyze, Blur Contrast, Color Replacement, Curve, Erode, Convolution, Twirl, Polar, Glow, Shadow, Alpha Cutoff, Bloom, Blur Zoom, Blur Simple, Color Remove, Average, Corner, Level Selector, Blur Bokeh, Blur Directional, Displacement, Bevel, Colorize, Threshold, Outline, Dither, Blur Radial, Pixel Sort] Add invert mask and mask feather properties.
- [Cache Array] Now run every frame even with non-animating input.
- [Cache, Cache Array] New cache group feature.
- [Canvas] Add brush distance, rotation, and rotate by direction properties.
- [Canvas] Add option to use background dimension (on by default).
- [Canvas] Draw action is now undoable.
- [Canvas] Multi-frames support.
- [Canvas] Now show preview when holding shift.
- [Canvas] Shift + right-click to change brush size.
- [Canvas] When using an eraser, if the alpha channel is set to true, then the eraser will only erase the alpha channel.
- [Collection] Now attempt to recover caches on every child node.
- [Color Adjust] Add blend modes.
- [Combine RGB] Add `base value` property to set the value to unconnected colors.
- [Combine Text] Now accepts any number of input texts.
- [Crop] Add area drawing tool.
- [Crop] Add corner adjust widget and dragging.
- [Displace] Add max and min blend mode.
- [Display Image] Add position and scale properties.
- [Display Text] Add interactable panel tag.
- [Display Text] Add position property
- [Display Text] Display button (mouse click, key press) now reacts to input action.
- [Display Text] Now use sdf font rendering.
- [Draw Text] Add letter spacing, line height properties.
- [Draw Text] Add option to scale text to fit surface.
- [Draw Text] Add path property.
- [Draw Text] Improve multiline rendering.
- [Draw Text] Remove the character range property as it does nothing.
- [Evaluate Curve] Add "animated" property to automatically set progress to the current timeline.
- [Execute Shell] Add confirmation dialog when running the node the first time.
- [Export] Add .mp4 file format (through FFmpeg).
- [Export] Add frame step property (I thought I'd already add this?)
- [Export] Add indexed subformats for PNG file.
- [Export] Add zero padding for the array index.
- [Export] Export button will now be disabled if the project is exporting.
- [Export] Node now waits for external encoding to be completed before completing the export process.
- [Find Pixel] Add option to output all found pixels.
- [Find Pixel] Add tolerance property.
- [Find Pixel] Pixel position now starts at [0, 0] instead of [1, 1]. Return [-1, -1] is no result.
- [Fluid > Add Fluid] Add velocity-related properties.
- [Fluid Render Domain] Add auto-update property.
- [FluidSim] Domain settings are moved to the group node.
- [Frame] Add label scale, blend label property.
- [Gif, Image animation] Add properties parity (animation speed, loop modes) and custom frame order mode.
- [Grid, hexagonal, triangular grid] Add an anti-aliasing option.
- [Group input] Add 3d (mesh, light, scene, materials) and audio data type.
- [Group input] Input ordering is now auto-resolved to prevent duplicate input order.
- [Group Input] Node initialize with "any" type, type set automatically to the first connection.
- [Group IO] Remove input order, IO order is now modifiable in the group settings page.
- [HLSL] Opening the "value" group will now hide the values widget inside the argument renderer.
- [Image Array] Now reuse the surface in each frame instead of re-creating a new one.
- [Image GIF] Add option to output as array.
- [L System] Add a warning when the generated rule is longer than the limit.
- [L System] Add max rule length limit as an attribute.
- [L System] Add random seed property.
- [L System] Improve generation performance.
- [Line] Add option to invert path direction.
- [Line] Add random blend property.
- [Line] Improve performance.
- [Loop] Add non-looping group IO.
- [LUA] Nodes now compile on load.
- [Node Action] Add expression support.
- [Node Action] Add id support for node, calling input by internal name.
- [Node Action] Add isometric cube node action.
- [Number] New slider and rotator.
- [Outline] Add option to crop overflow pixel for inside outline.
- [Outline] Add option to crop overflow pixel for the inside outline.
- [Palette extract] Algorithm dropdown will only update on click instead of hover.
- [Particle, VFX] Add a new wiggle category with position, rotation, scale, and direction wiggles.
- [Particle, VFX] Add bounce ground friction property.
- [Particle, VFX] Add trigger spawn condition.
- [Particle, VFX] Animation speed, gravity, and wiggle can now be random range.
- [Particle, VFX] Improve curve evaluation performance.
- [Particle, VFX] Remove atlas type. (Atlas input to the same junction as normal surface)
- [Particle, VFX] Rename wiggle to direction wiggle.
- [Particle, VFX] Spawn amount now can be set to a random range.
- [Particle, VFX] Wiggle now uses amplitude and period instead of range.
- [Particle] Add array output type.
- [Path array] Inspecting the node now shows a combined path.
- [Path Builder] Remove connected property. Now use nested vec2 array to define disconnected paths.
- [Patreon exclusive] New extra Perlin noises node.
- [Patreon exclusive] New Gabor, Shard, Wavelet noise, and caustic nodes.
- [PCX] Add `self` keyword to get value from the same node (e.g. `self.array_in` to get value from a junction called "Array in").
- [PCX] Add `surface_get_dimension(surface)`.
- [PCX] Add color creation functions:
- [PCX] Add type checking and conversion for evaluated value.
- [PCX] Expression now returns a raw value (type conversion will not be done on the return value, only array balancing).
- [Pin] Now propagate value instead of reference.
- [Pin] Simplify the node and improve UX.
- [Pixel Builder] Add group io nodes.
- [Pixel Sort] Setting iteration to 0 or lower will now return the original image.
- [Polar] Add blend property.
- [Polar] Add distance modifier (inverse square and logarithm) property.
- [Polar] Inverse axis and add a new option to swap the x and y-axis.
- [RGB Combine] Brightness mode now multiplies alpha.
- [Rigidbody force] Add preview scale setting.
- [Rigidbody object] Add option to add 1x1 pixel collider for empty collider in collision generator.
- [Rigidbody Object] Object now only relies on position value.
- [Rigidbody Render] Add round position property.
- [Scale algo] Add image atlas compatibility.
- [Scale] Add image atlas compatibility.
- [Scatter point] Add option to output as 3D points.
- [Scatter] Now support path array.
- [Separate Shape] Now always auto-update.
- [Separate Shape] Now output cropped image atlas.
- [Set Material] Add an option to wrap a single material with array.
- [Splice sprite sheet] Improve processing speed, won't draw preview boundary if output has more than 256 sprites.
- [Splice Sprite Sheet] Now always auto-update.
- [Sprite stack] Add an option to stack each surface in an array into one image.
- [Sprite stack] Add stack preview for combined type.
- [Strip] Add strip ratio property.
- [Struct Get] Add struct array support.
- [Supporter] New extra Voronoi node.
- [Switch] Now only display connectable junctions.
- [Text] Add background property.
- [Texture Remap] Add an option to set the dimension to RG map instead of surface input.
- [Transform] Renamed "Scale" output dimension type to "Transformed" which also include rotation.
- [Transform] Renamed "Scale" output dimension type to "Transformed" which also includes rotation.
- [UV remap] Add option to bake UV so prior transform won't affect UV mapping.
- [Vector Split] Node only displays visible output in the graph panel.
- [VFX effectors] Add seed property.
- [VFX group] Improve caching.
- [VFX group] Loop property is now moved to group parent.
- [VFX nodes] Focusing on the node will preview the latest renderer instead of itself.
- [VFX Renderer] Blending control now separate per partible object.
- [VFX spawner] Add a setting to output all particles.
- [VFX variable] Add seed value.
- [VFX vortex] Add toggle to destroy particle when it reaches the middle.
- [VFX, Particle] "Direct data" distribution and "data" scatter type removed, replaced with atlas input.
- [VFX] Node now won't update when manually scrolling.
- Add atlas compatibility to most? array processor nodes.
- Add channel selector to several filter nodes. (Threshold, Palette Shift, Bw, Level, Invert, Palette Replacement, Skew, Greyscale, Dilate, Edge Detect, Local Analyze, Blur Contrast, Curve, Erode, Convolution, Twirl, Polar, Bloom, Blur Zoom, Blur Simple, Color Remove, Average, Corner, Blur, Level Selector, Blur Bokeh, Blur Directional, Displacement, Colorize, Dither, Blur Radial, Pixel Sort)
- Add connection support from particle to struct get.
- Add remappable shortcuts to node tools.
- Add support for custom nodes.
- Array processor node now balances array (convert scalar to the array, resize array to match value) for each spread value.
- Atlas datatype is now merged with surface type.
- Enum and boolean data types will create a hold keyframe by default.
- Group input and output order is now an attribute instead of a property (appear in the settings tab).
- Improve obj file loading speed.
- Improve performance marginally.
- Increase the Gaussian blur size limit to 128.
- Introduce the brand new 3D workflow for better, more modular 3D manipulation in Pixel Composer.
- Introducing dynaSurf (dynamic surface). A new type of surface with a custom rendering function.
- Introducing MK nodes. A single built-in node that specializes in one effect to reduce complexity and just to get things done.
- New 3D camera set node. A camera node with built-in 2 directional lights for simpler rendering.
- New 3D terrain node
- New 3D transform node.
- New active canvas node
- New array convolute, array composite nodes.
- New array sample node.
- New audioBit datatype for working with audio files.
- New execute shell node.
- New fluid renderer with group output node.
- New group thumbnail node.
- New HLSL node.
- New interpret number node for converting an array of numbers into surface.
- New IsoSurf node.
- New MK Ball grid node.
- New MK Flip grid node.
- New MK Rain node.
- New MK Saber node.
- New point effector node
- New rigid body render output node.
- New Set Material node
- New transform scene node
- New UV remap node
- New VFX oscillate node.
- New VFX render output node (node that acts as both renderer and group output).
- New VFX trail node
- Node now uses partial graph rendering which should only update nodes that have its content changed.
- Related node suggestion now defined externally with .json file and can be extended by adding a new file in `localappdata/PixelComposer/Nodes/Related`
- Remove legacy 3D nodes.
- Removing animation status also removes all the keyframes.
- Rename "node" category to "misc"
- Rename fluidSim to smokeSim (internally the node still calls fluidSim so there should not be any import error.)
- Rendering time now measures cache storing, and loading time.
- Surface dimension project attribute is now a persisted value.
- Toggling animation on the property with 1 keyframe will create a key on the current animation frame.
Bug
[list]
[3D camera] Fix object disappearing when enable shadow.
[3D Camera] Fix render result error when previewing.
[3D extrude] Fix error when inputting invalid surface.
[3D obj] Fix wrong material order.
[3D scene] Fix error when inputting non-3d-object data.
[3D] Fix grid disappearing when enable backface culling.
[3D] Fix light intensity not working.
[3D] Fix local rotation sometime goes sicko mode.
[3D] Fix preview not hiding when disabling node preview.
[3D] Fix transparent texture cause weird shading.
[Active Canvas] Fix the error when not creating a node on the first frame.
[Add Fluid, Velocity] Fix velocity error when using colored material.
[Add node] Fix crashes when adding a node to favorite.
[Add node] Fix item clipping on list mode.
[Add node] Fix recent section show un-buildable nodes.
[Add on] Fix crash when drawing widgets.
[Animation Panel] Fix crash on duplicating keyframes.
[Animation] Fix keyframes moving around when holding shift.
[Animation] Fix node not load images in when create from add node dialog.
[Animation] Fix padding not aligned properly.
[Animation] Fix save/load error on some project.
[Animator Panel] Fix control buttons not working.
[Animator Panel] Fix overlapping keyframes not destroying another.
[Animator Panel] Fix the error when closing the project tab.
[Animator] Fix properties sometimes disappear.
[Armature Pose] Fix node not updating.
[Armature] Fix error when previewing.
[Array Processor] Fix fractional unit not applying with an array of surfaces.
[Array Zip] Fix junction color not updating.
[Array] Fix junction disappearing when updating the node.
[Array] Fix junction not changing color when duplicating.
[Autocomplete] Fix autocomplete prompt appears twice.
[Blend] Fix alpha blending multiply alpha for non-normal blend mode.
[Cache Array] Fix the current frame not showing up in the result.
[Cache] Fix the clear cache button not working.
[Canvas] Fix brush still active when using the color picker.
[Canvas] Fix draw line with shift gives unexpected result.
[Canvas] Fix floodfill fill over black pixel.
[Canvas] Fix holding the alt key still activates tool action.
[Canvas] Fix surface not refreshing when changing dimension.
[Canvas] Fix the error when deleting the last frame while previewing the last frame.
[Cellular noise] Fix artifact in edge mode.
[Code Editor] Fix Enter key not responding.
[Collection] Add an option to change the thumbnail for local collection.
[Collection] Fix folder opens and closes rapidly when creating multiple instances of the panel.
[Collection] Fix folder panel can't scroll to the last item.
[Collection] Fix loading collection gives a version mismatch error even if the collection is updated.
[Color adjust] Fix node picking up the random surface as a mask when no mask attached.
[Color data] Fix error popup when inputting color array/ palette.
[Contrast blur] Fix effect applies incorrectly.
[Controller mapper addon] Fix crash on start.
[Crop content] Fix inaccurate output.
[Crop Content] Fix node not working.
[Crop] Fix crashes when previewing an array of inputs.
[CurveBox] Fix right-clicking brings up the context menu.
[CurveBox] Fix the context menu appearing when deleting the anchor point.
[Dialog] Fix crashes when opening color selector.
[Equation] Fix AST not cache properly.
[Exit] Fix long project name overflow out of the dialog.
[Export graph] Fix connection not rendering.
[Export] Fix animation controller stays disabled when exporting image sequence.
[Export] Fix animation not exporting if the input is static.
[Export] Fix error popup when exporting gif.
[Export] Fix format value not loaded properly.
[Export] Fix path for third party libraries can't be found.
[Export] Fix preview extension does not reflect the selected extension.
[Export] Fix subformat error.
[Font load] Remove duplicate font_add calls.
[Globalvar] Fix error on vec2 range datatype.
[Globalvar] Fix error when animating globalvar.
[Globalvar] Fix slider ignoring range and step value.
[Glow] Fix glowing pixel becomes darker.
[Gradient selector] Fix adding and deleting gradient not updating gradient list.
[Gradient selector] Fix editing gradient from the preset also modify the preset itself.
[Graph Export] Fix exported images containing transparent regions.
[Graph Node Export] Fix error on open.
[Graph Panel] Fix crash when changing corner radius.
[Graph Panel] Fix crash when setting high render quality.
[Graph Panel] Fix incorrect connection to the dynamic input node.
[Graph Panel] Fix junction highlight not disappear when releasing the alt key.
[Graph Panel] Fix the title of the non-active panel not updating when using the "save all" button.
[Graph Panel] Fix view context not resetting when closing the project.
[Graph, Animator Panel] Fix node color not saving if the node is not animated.
[Graph, Preview panel] Fix dragging hotkey not working.
[Graph] Fix crashes when dropping a file from asset to image node.
[Group Input] Fix curve datatype does not show up in the inspector.
[Group Input] Fix error when changing from non-array display type to array type and vice versa.
[Group input] Fix error when loading gradient from collection.
[Group IO] Fix node not rename itself to the first connection.
[Group IO] Fix renaming node with output connected and revert the name back.
[Group output] Fix output junction not disappearing when set to invisible.
[*] [noparse][Group] Fix error when deleting
Changed files in this update