If we had to give a theme to this release, it would be textures and patterns. This was half by coincidence, one of our GSoC students this year focused on getting SeExpr integration going, one of the mentors decided to work in the same area, and two volunteer contributors also came up with pattern and texture related features.
This release brings a lot of updates and changes to fill layers.
Multi-threading for fill layers
Fill layers can now make use of multi-threading. This means that if your computer has multiple cores, Krita can subdivide the calculation work for making fill layers between them. This makes fill layers a lot faster.
Transformations for the pattern fill
The different pattern transforms possible now.
The patterns of fill layers can now be transformed, allowing you to amongst others, rotate the patterns. This has also been implemented for the shape drawing tools and the bucket fill, and had been long on the to-do list.
A new fill layer option specialized in filling the whole screen with dots, squares, lines, waves or more. This fill layer allows you to quickly generate the simple pattern you need on the fly, which is very useful for those doing comic book illustration or similar highly graphics styles.
This filter was inspired by the next item on the list…
Amyspark’s Google Summer of Code project, the integration of Disney Animation’s SeExpr expression language. SeExpr is in effect a tiny shader language that is used by Walt Disney Animation Studios itself to generate textures and materials on the fly for their animations. Within Krita, this allows you to code your own fill layers. We’ve also tried to come up with a good set of defaults to work off from and included them.
Following the addition of the lightness mode in 4.3, this release sees another round of features for the brush engines.
Top stroke: using a combination of the new lightness parameter with the mix parameter. Bottom stroke: using the texture strength parameter to mix gradient mapped brush tips and textures.
Gradient Map mode for Brush-tips
If lightness mode is not subtle enough for you, you can now also use the global gradient to color a brush tip. Especially useful with small repeating objects like flowers and leaves.
Support for dynamic use of currently selected colors in gradients.
While Krita had support for the GIMP Gradient format, we never supported the dynamic changing of gradients based on the current fore and background colors. Nor did we do so for the layer styles. This has now been added. Several of the bundled presets use the foreground color to easily create sparks, haze and other effects.
Little sparkles added with the ‘GPS glare’ default, different colors are a different foreground color.
While most of the animation work is happening in master and will be in the next big Krita release, some choice features have made it to 4.4:
WebM/VP9 preset for Animation Rendering – Based on a request for a web friendly rendering preset.
Compositions Docker now allows for the axporting of Animations – Requested by animators, the compositions docker allows for saving and loading layer visibility configurations. This adds the ability to setup animation renders for these configurations.
GDQUEST Batch Exporter add-on
An exporter for batch exporting the layers and positions from Krita. Made by the folks over at Game Design Quest:
Python plugin Channels to Layers
By Gwendal Blanchard, this plugin allows you to quickly seperate the image channels into layers.
Return list of available dockers for application in python
Make Ctrl+C/X/V shortcut work with layers when there is nothing else to copy – Krita can copy pixel data, vector objects and whole layers with blending modes, frames, child layers and other properties. Previously, Krita would only try to copy pixel and vector objects if these were selected and otherwise not copy anything. Now, Krita will copy (or cut) the selected layer if nothing is selected, making it a lot easier to copy and paste layers between files.
Basic Reapply Filter with Prompt. We already had ‘Reapply Filter’, but some filters have configuration dialogs that you might wish to change. This function allows for exactly that, and can have a hotkey assigned for quick access.
Update default layer name to show type – Krita used to give layers names like ‘layer 1’, ‘layer 2’, regardless of layer type. Based on artist feedback, we’ve now added the layer type to make it easier to tell what kind of layer was made.
Add ‘selection as a border’ option to the Fill Tool – In some graphics software, the fill tool will treat seperately selected areas as seperate areas to fill. We’ve added an option to the fill tool that allows this in Krita. It is a little slower, and therefore off by default.
Fix undo breakage after converting a pixel selecion into a vector one (BUG:411394)
Add a workaround for boolean operations on shapes (BUG:411056)
Fix Move Tool to work correctly with Instant Preview (BUG:400484)
Add antialias to the gradients in the cases they showed jagged borders (Deif Lou)
Make the color labels combobox nicer in Tool Options
Fix layer’s bounds extending when painting outside the selected area (BUG:394439)
Disable doing bitBlt outside extent when alpha channel is locked (BUG:394439)
Fix moving local selection mask created from global selection (BUG:411802)
Fix the _other_ place where the lorem text was used(BUG:421663)
Bugfix: Recent documents don’t open (BUG:422412)
Fix resource icon aspect ratio on 1 column display
Fix artifacts when moving a layer with layer styles
Fix leftover artifacts when moving shapes under layer styles (BUG:414581)
Let Select Opaque deselect the selection when the layer is empty (BUG:418028)
Fix converting multile shapes into a vector selection (BUG:414262)
Don’t start move-selection stroke if selection is empty (BUG:407160)
Fix move-selection action after using locked-alpha painting (BUG:402770)
Fix conversion of masks into a paint layer
Recover active node when the user toggles “Edit Global Selection” (BUG:409944)
Created a shader for drawing brush tool outline. (BUG:415772)
Fixed OpenGL canvas rendering for High-DPI displays.
Make Angle preferred renderer on Windows
Remove old workaround for popup palette hiding (BUG:415106)
Add context to the “Original” label (BUG:422706)
Fix the plugins/tool action files (BUG:422729)
Fix loading ASL gradients with only one stop (BUG:422320)
Fix updates of masks when changing visibility (BUG:422804)
Fix Liquify Transform to avoid changing the image when no transform done (BUG:416471)
Fix jumping of shapes when Orthogonal Snap is enabled (BUG:414336)
Fixes the problem of calculating threshold of flood fill tools. (BUG:416892)
Fix applying invert filter on transparency masks (BUG:422805)
Make Smart Patch Tool consider active selection (BUG:420219)
Lens blur: Map between translated and untranslated strings in filter config (BUG:422999)
Fix “Shrink from image border” wrapping (BUG:402196)
Fix border selection to generate non-fuzzy edges (BUG:395673)
Fix Screen Fetch Logic Crash in KoToolBox that was triggered by vertical monitors.
Parent the resource manager window (BUG:423097)
Fix KoZoomTool on rotated and mirrored canvas (BUG:386704)
Fix canvas FBO object to work ocrrectly in fractional display scaling mode (qt 5.14.0)
Fix handling of Control modifier in the Zoom Tool (BUG:411507)
Fix the aspect ration of the gradient selector popup
No need to abort when this assert fails (BUG:423303)
Remove the jpef/jfif mime subtype
Fix exporting ORA files (BUG:423088)
Add a small executable to print the version (BUG:423285)
Save and load assistant side handles in .kra and .paintingassistant files (Nabil Maghfur Usman)
Add a warning label in file layer dialog (BUG:413594) (matt coudert)
Show floating message of activated preset in Ten Brushes
Disambiguate the filter categories (BUG:423388)
Fill layers: Keep the config around when switching generators (BUG:422885)
Add support for loading dds files
Fix contiguous selection tool working on projection (BUG:423336, BUG:423237)
Fix ffmpeg argument construct for GIF save (BUG:420215, BUG:423439)
Update the waterc brushes so they work with mice, too
Fix use-after-free in the resource server (BUG:419140)
Fix cloning of a stroke layers style with “center” position (BUG:423150)
Fix crash when using Fill Tool without a selection (BUG:423470)
Add cancellation of assistant creation with escape (BUG:415172)
Fix destination atop rendering (BUG:423465)
Add a workaround for too big brushes generated by Masking Brush option (BUG:423572) (Thanks Defresne for draft patch)
Fix saving broken .ora file in case of empty layer (BUG:423741)
Don’t save x and y of groups in .ora files (BUG:423088)
Don’t save reference images in .ora files (BUG:423741)
Allow shift snapping when placing and dragging assistant handles (BUG:406204)
Don’t hide global assistant color when no assistant is selected
Fix broken shortcuts when user uses Space key as a modifier (BUG:409613)
Fix Crash on Frame Priority Caching when Graphics Acceleration is Disabled. (BUG:424037)
Fix the aspect ratio of the palette chooser (BUG:424227)
Fix crash on curve adjustment filter in CMYK document (BUG:424187)