diff --git a/reference_manual/brushes/brush_engines/hatching_brush_engine.rst b/reference_manual/brushes/brush_engines/hatching_brush_engine.rst index d8c40cc6a..ab3cbdf80 100644 --- a/reference_manual/brushes/brush_engines/hatching_brush_engine.rst +++ b/reference_manual/brushes/brush_engines/hatching_brush_engine.rst @@ -1,106 +1,107 @@ .. meta:: :description: The Hatching Brush Engine manual page. .. metadata-placeholder :authors: - Wolthera van Hövell tot Westerflier - Scott Petrovic - ValerieVK :license: GNU free documentation license 1.3 or later. .. index:: Brush Engine, Hatching, Halftone, Hatching Brush Engine .. _hatching_brush_engine: ===================== Hatching Brush Engine ===================== .. image:: /images/icons/hatchingbrush.svg When I first tried this brush, my impression of it was "plain parallel lines" (and the award for most boring brush goes to...). Fortunately, existing presets gave me an idea of the possibilities of this brush. Settings -------- Brush tip ~~~~~~~~~ The brush tip simply defines the area where the hatching will be rendered. * Transparent brush tip areas give more transparent hatching, but as with a normal brush, passing over the area again will increase opacity. * The hatching itself is mostly fixed in location, so drawing with a hatching brush usually acts more like "revealing" the hatching underneath than drawing with brushes of parallel lines. The exception is for :guilabel:`Moiré pattern` with :guilabel:`Crosshatching` dynamics on. * Vary the brush shape or texture for a variety of effects. Decreasing the density of the autobrush will give a grainy texture to your hatching, for example. * The :guilabel:`Size` dynamic affects the brush tip, not the hatching thickness. .. image:: /images/en/Krita-tutorial8-A.I.1.png Hatching preferences ~~~~~~~~~~~~~~~~~~~~ Before going on: at the time of this writing, there is a bug that causes line thickness to not vary on default settings. To get around this, go to :guilabel:`Hatching preferences` and check :guilabel:`Antialiased Lines`. Pentalis is aware of this issue so the bug may get fixed soon. The three options are: * :guilabel:`Antialiased lines`: This controls aliasing. If changing line thickness isn't working, check this option and it should work, because it switches to a different algorithm. * :guilabel:`Subpixel precision`: I'm guessing this affects the rendering quality, but you won't see much of a difference. Check this if you want to. * :guilabel:`Color background`: Checking this will color in the background at the back of the hatching. The output is slightly different depending on whether the first two options are checked, but the difference isn't enough for you to worry about. I recommend just keeping the first two options checked. .. image:: /images/en/Krita-tutorial8-A.I.2.png Hatching options ~~~~~~~~~~~~~~~~ This is where the main hatching options go. They're intuitive enough: * Angle: The angle of the hatching. * Separation: This is the distance between the centers of the lines. * Use a value of 2 pixels or higher, or the lines won't be distinct anymore. * The Separations dynamic doesn't actually assign random values to Separation, instead it will take the value in "Input-based intervals" to divide the grid further. "Input-based intervals" can take values between 2 and 7. * Thickness: The line thickness. * Actually, this is the thickness of the line + blank area, so the line itself has a thickness of half this value. * If you use the same separation value and the same line thickness value, then the lines and the area between them will be of the same thickness. * You can vary this value dynamically with the Thickness dynamics. * If the line thickness isn't changing for you, go to Hatching Preferences and check "Antialiased Lines." * Origin X and Origin Y: The hatching has a fixed location, painting acts as though you're revealing the existing hatching underneath. To nudge the hatching, you can tweak these two values. You can get various grid effects this way. .. image:: /images/en/Krita-tutorial8-A.I.3-1.png Finally, we have the hatching styles: * No crosshatching: basic parallel lines * Perpendicular plane only: grid lines * -45 degrees plane then +45 degrees plane: see example. * +45 degrees plane then -45 degrees plane: see example, actually not much different from the above, it's mostly the order that changes when using dynamics. * Moiré pattern: See example. The Crosshatching dynamic only works if you have already chosen a crosshatching style. When that happens, the crosshatching only gets drawn according to the conditions of the dynamics (pressure, speed, angle...). * With most hatching styles, using crosshatching dynamics basically gets you the same hatching style, minus the occasional line. * The exception is with Moire, which will produce a different pattern. .. image:: /images/en/Krita-tutorial8-A.I.3-2.png Use cases --------- If you don't want the edges to be fuzzy, go to Brush Tip and set the Fade values to 1.00. I recommended doing the hatching on a separate layer, then erasing the extra areas. Now for the uses: * You can, of course, just use this for completely normal hatching. In versions I'm using, the default Separation is 1, which is too low, so increase Separation to a value between 2 to 10. * If you find normal hatching too boring, increase the Thickness and set the Thickness dynamic to either Pressure (if you have a tablet) or Speed (if you're using a mouse). Doesn't that look more natural? (When using a mouse, pass over the areas where you want thicker lines again while drawing faster) * Grittier texture: add some density and/or randomness to your autobrush for a grittier texture. * You can also set Painting Mode to Build up, and Mode to Multiply, to make some colors have more depth. (see my grid example) * Vary Origin X and Origin Y while using the same patterns. * Use the Separations dynamic for more complex patterns. Add in Line Thickness and other dynamics for more effect. -* Now, the Moiré pattern is quite boring on its own, but it is much more interesting with Crosshatching dynamics set on Fuzzy.** For more texture, set Line Thickness to Fuzzy, decrease Density a bit and increase Randomness and you get a nice gritty texture. +* Now, the Moiré pattern is quite boring on its own, but it is much more interesting with Crosshatching dynamics set on Fuzzy. +* For more texture, set Line Thickness to Fuzzy, decrease Density a bit and increase Randomness and you get a nice gritty texture. .. image:: /images/en/Krita-tutorial8-A.II.png diff --git a/reference_manual/dockers/advanced_color_selector.rst b/reference_manual/dockers/advanced_color_selector.rst index 5656fe7a2..0e80fc25c 100644 --- a/reference_manual/dockers/advanced_color_selector.rst +++ b/reference_manual/dockers/advanced_color_selector.rst @@ -1,155 +1,155 @@ .. meta:: :description: Overview of the advanced color selector docker. .. metadata-placeholder :authors: - Wolthera van Hövell tot Westerflier - Scott Petrovic :license: GNU free documentation license 1.3 or later. .. index:: Color, Color Selector, ! Advanced Color Selector .. _advanced_color_selector_docker: ======================= Advanced Color Selector ======================= .. image:: /images/en/Advancecolorselector.jpg -As compared to other color selectors in Krita, Advanced color selector provides more control and options to the user. To open Advanced color selector choose :menuselection:`Settings --> Docker --> Advanced Color Selector`. You can configure this docker by clicking on the little wrench icon on the top left corner. Clicking on the wrench will open a popup window with following tabs and options: +As compared to other color selectors in Krita, Advanced color selector provides more control and options to the user. To open Advanced color selector choose :menuselection:`Settings --> Dockers --> Advanced Color Selector`. You can configure this docker by clicking on the little wrench icon on the top left corner. Clicking on the wrench will open a popup window with following tabs and options: Color Selector -------------- Here you configure the main selector. Type and Shape ~~~~~~~~~~~~~~ .. image:: /images/en/Krita_Color_Selector_Types.png Here you can pick the hsx model you'll be using. There's a small blurb explaining the characteristic of each model, but let's go into detail: HSV Stands for Hue, Saturation, Value. Saturation determines the difference between white, grey, black and the most colorful color. Value in turn measures either the difference between black and white, or the difference between black and the most colorful color. HSL Stands for Hue, Saturation, Lightness. All saturated colors are equal to 50% lightness. Saturation allows for shifting between grey and color. HSI This stands for Hue, Saturation and Intensity. Unlike HSL, this one determine the intensity as the sum of total rgb components. Yellow (1,1,0) has higher intensity than blue (0,0,1) but is the same intensity as cyan (0,1,1). HSY' Stands for Hue, Saturation, Luma, with Luma being an RGB approximation of true luminosity. (Luminosity being the measurement of relative lightness). HSY' uses the Luma Coefficients, like `Rec 709 `_, to calculate the Luma. Due to this, HSY' can be the most intuitive selector to work with, or the most confusing. Then, under shape, you can select one of the shapes available within that color model. .. note:: Triangle is in all color models because to a certain extent, it is a wildcard shape: All color models look the same in an equilateral triangle selector. Luma Coefficients ~~~~~~~~~~~~~~~~~ This allows you to edit the Luma coefficients for the HSY model selectors to your leisure. Want to use `Rec 601 `_ instead of Rec 709? These boxes allow you to do that! By default, the Luma coefficients should add up to 1 at maximum. Gamma The HSY selector is linearised, this setting allows you to choose how much gamma is applied to the Luminosity for the gui element. 1.0 is fully linear, 2.2 is the default. Color Space ~~~~~~~~~~~ This allows you to set the overall color space for the Advanced Color Selector. .. warning:: You can pick only sRGB colors in advanced color selector regardless of the color space of advanced color selector. This is a bug. Behaviour --------- When docker resizes ~~~~~~~~~~~~~~~~~~~ This determines the behavior of the widget as it becomes smaller. Change to Horizontal This'll arrange the shade selector horizontal to the main selector. Only works with the MyPaint shade selector Hide Shade Selector This hides the shade selector. Do nothing Does nothing, just resizes. Zoom selector UI ~~~~~~~~~~~~~~~~ If your have set the docker size considerably smaller to save space, this option might be helpful to you. This allows you to set whether or not the selector will give a zoomed view of the selector in a size specified by you, you have these options for the zoom selector: * when pressing middle mouse button * on mouse over * never The size given here, is also the size of the Main Color Selector and the MyPaint Shade Selector when they are called with :kbd:`Shift + I` and :kbd:`Shift + M`, respectively. Hide Pop-up on click This allows you to let the pop-up selectors called with the above hotkeys to disappear upon clicking them instead of having to leave the pop-up boundary. This is useful for faster working. Shade selector -------------- Shade selector options. The shade selectors are useful to decide upon new shades of color. Update Selector ~~~~~~~~~~~~~~~ This allows you to determine when the shade selector updates. MyPaint Shade Selector ~~~~~~~~~~~~~~~~~~~~~~ Ported from MyPaint, and extended with all color models. Default hotkey is :kbd:`Shift+ M` Simple Shade Selector ~~~~~~~~~~~~~~~~~~~~~ This allows you to configure the simple shade selector in detail. Color Patches ------------- This sets the options of the color patches. Both Color History and Colors From the Image have similar options which will be explained below. Show This is a radio button to show or hide the section. It also determines whether or not the colors are visible with the advanced color selector docker. Size The size of the color boxes can be set here. Patch Count The number of patches to display. Direction The direction of the patches, Horizontal or Vertical. Allow Scrolling Whether to allow scrolling in the section or not when there are too many patches. Number of Columns/Rows The number of Columns or Rows to show in the section. Update After Every Stroke This is only available for Colors From the Image and tells the docker whether to update the section after every stroke or not, as after each stroke the colors will change in the image. History patches ~~~~~~~~~~~~~~~ The history patches remember which colors you've drawn on canvas with. They can be quickly called with :kbd:`H` Common Patches ~~~~~~~~~~~~~~ The common patches are generated from the image, and are the most common color in the image. The hotkey for them on canvas is :kbd:`U`. External Info ------------- `HSI and HSY for Krita’s advanced color selector. `_ diff --git a/reference_manual/preferences/performance_settings.rst b/reference_manual/preferences/performance_settings.rst index ad6beaa66..ee482d4a4 100644 --- a/reference_manual/preferences/performance_settings.rst +++ b/reference_manual/preferences/performance_settings.rst @@ -1,120 +1,120 @@ .. meta:: :description: Performance settings in Krita. .. metadata-placeholder :authors: - Wolthera van Hövell tot Westerflier - Scott Petrovic :license: GNU free documentation license 1.3 or later. .. index:: Preferences, Settings, Performance, Multithreading, RAM, Memory Usage, Lag .. _performance_settings: ==================== Performance Settings ==================== :program:`Krita`, as a painting program, juggles a lot of data around, like the brushes you use, the colors you picked, but primarily, each pixel in your image. Due to this, how :program:`Krita` organizes where it stores all the data can really speed up :program:`Krita` while painting, just like having an organized artist's workplace can really speed up the painting process in real life. These preferences allow you to configure :program:`Krita's` organisation, but all do require you to restart :program:`Krita`, so it can do this organisation properly. RAM --- RAM, or Random Access Memory, is the memory your computer is immediately using. The difference between RAM and the hard drive memory can be compared to the difference between having files on your desk and having files safely stored away in an archiving room: The files on your desk as much easier to access than the ones in your archive, and it takes time to pull new files from the archive. This is the same for you computer and RAM. Files need to be loaded into RAM before the computer can really use them, and storing and removing them from RAM takes time. These settings allow you to choose how much of your virtual desk you dedicate to :program:`Krita`. :program:`Krita` will then reserve them on start-up. This does mean that if you change any of the given options, you need to restart :program:`Krita` so it can make this reservation. Memory Limit This is the maximum space :program:`Krita` will reserve on your RAM on startup. It's both available in percentages and Bytes, so you can specify precisely. :program:`Krita` will not take up more space than this, making it safe for you to run an internet browser or music on the background. Internal Pool A feature for advanced computer users. This allows :program:`Krita` to organize the area it takes up on the virtual working desk before putting its data on there. Like how a painter has a standard spot for their canvas, :program:`Krita` also benefits from giving certain data it uses its place (a memory pool), so that it can find them easily, and it doesn't get lost among the other data (memory fragmentation). It will then also not have to spent time finding a spot for this data. Increasing this of course means there's more space for this type of data, but like how filling up your working desk with only one big canvas will make it difficult to find room for your paints and brushes, having a large internal pool will result in :program:`Krita` not knowing where to put the other non-specific data. On the opposite end, not giving your canvas a spot at all, will result in you spending more time looking for a place where you will put the new layer or that reference you just took out of the storage. This happens for :program:`Krita` as well, making it slower. This is recommended to be a size of one layer of your image, e.g. if you usually paint on the image of 3000x3000x8bit-ARGB, the pool should be something like 36 MiB. As :program:`Krita` does this on start-up, you will need to restart :program:`Krita` to have this change affect anything. Swap Undo After :program:`Krita` also needs to keep all the Undo states on the virtual desk (RAM). Swapping means that parts of the files on the virtual desk get sent to the virtual archive room. This allows :program:`Krita` to dedicate more RAM space to new actions, by sending old Undo states to the archive room once it hits this limit. This will make undoing a little slower, but this can be desirable for the performance of :program:`Krita` overall. This too needs :program:`Krita` to be restarted. Swapping -------- File Size Limit This determines the limit of the total space :program:`Krita` can take up in the virtual archive room. If :program:`Krita` hits the limit of both the memory limit above, and this Swap File limit, it can't do anything any more (and will freeze). Swap File Location This determines where the Swap File will be stored on you hard-drive. Location can make a difference, for example, Solid State Drives (SSD) are faster than Hard Disk Drives (HDD). Some people even like to use USB-sticks for the swap file location. Advanced -------- Multithreading ~~~~~~~~~~~~~~ Since 4.0, Krita supports multithreading for the animation cache and handling the drawing of brush tips when using the pixel brush. CPU Limit The amount of cores you want to allow Krita to use when multithreading. Frame Rendering Clones Limit When rendering animations to frames, Krita multithreads by keeping a few copies of the image, with a maximum determined by the amount of cores your processor has. If you have a heavy animation file and lots of cores, the copies can be quite heavy on your machine, so in that case try lowering this value. Other ~~~~~ Limit frames per second while painting. This makes the canvas update less often, which means Krita can spend more time calculating other things. Some people find fewer updates unnerving to watch however, hence this is configurable. Debug logging of OpenGL framerate Will show the canvas framerate on the canvas when active. Debug logging for brush rendering speed. Will show numbers indicating how fast the last brush stroke was on canvas. Disable vector optimizations (for AMD CPUs) Vector optimizations are a special way of asking the CPU to do maths, these have names such as SIMD and AVX. These optimizations can make Krita a lot faster when painting, except when you have a AMD CPU under Windows. There seems to be something strange going on there, so just deactivate them then. Enable progress reporting This allows you to toggle the progress reporter, which is a little feedback progress bar that shows up in the status bar when you let Krita do heavy operations, such as heavy filters or big strokes. The red icon next to the bar will allow you to cancel your operation. This is on by default, but as progress reporting itself can take up some time, you can switch it off here. Performance logging This enables performance logging, which is then saved to the ``Log`` folder in your ``working directory``. Your working directory is where the auto save is saved at as well. So for unnamed files, this is the ``$HOME`` folder in Linux, and the ``%TEMP%`` folder in Windows. Animation Cache --------------- .. versionadded:: 4.1 The animation cache is the space taken up by animation frames in the memory of the computer. A cache in this sense is a cache of precalculated images. Playing back a video at 25 FPS means that the computer has to precalculate 25 images per second of video. Now, video playing software is able to do this because it really focuses on this one single task. However, Krita as a painting program also allows you to edit the pictures. Because Krita needs to be able to do this, and a dedicated video player doesn't, Krita cannot do the same kind of optimizations as a dedicated video player can. Still, an animator does need to be able to see what kind of animation they are making. To do this properly, we need to decide how Krita will regenerate the cache after the animator makes a change. There's fortunately a lot of different options how we can do this. However, the best solution really depends on what kind of computer you have and what kind of animation you are making. Therefore in this tab you can customize the way how and when the cache is generated. Cache Storage Backend ~~~~~~~~~~~~~~~~~~~~~ In-memory Animation frame cache will be stored in RAM, completely without any limitations. This is also the way it was handled before 4.1. This is only recommended for computers with huge amount of RAM and animations that must show full-canvas full resolution 6k at 25 fps. If you do not have a huge amount (say, 64GiB) of ram, do *not* use this option (and scale down your projects). .. warning:: Please make sure your computer has enough RAM *above* the amount you requested in the :guilabel:`General` tab. Otherwise you might face system freezes. * For 1 second of FullHD @ 25 FPS you will need 200 extra MiB of Memory * For 1 second of 4K UltraHD@ 25 FPS, you will need 800 extra MiB of Memory. On-disk Animation frames are stored in the hard disk in the same folder as the swap file. The cache is stored in a compressed way. A little amount of extra RAM is needed. - Since data transfer speed of the hard drive is slow. You might want to limit the :guilabel:`Cached Frame Size` to be able to play your video at 25 fps. A limit of 2500 px is usually a good choice. + Since data transfer speed of the hard drive is slow, you might want to limit the :guilabel:`Cached Frame Size` to be able to play your video at 25 fps. A limit of 2500 px is usually a good choice. Cache Generation Options ~~~~~~~~~~~~~~~~~~~~~~~~ Limit Cached Frame Size Render scaled down version of the frame if the image is bigger than the provided limit. Make sure you enable this option when using On-Disk storage backend, because On-Disk storage is a little slow. Without the limit, there's a good chance that it will not be able to render at full speed. Lower the size to play back faster at the cost of lower resolution. Use Region Of Interest We technically only need to use the section of the image that is in view. Region of interest represents that section. When the image is above the configurable limit, render only the currently visible part of it. Enable Background Cache Generation This allows you to set whether the animation is cached for playback in the background (that is, when you're not using the computer). Then, when animation is cached when pressing play, this caching will take less long. However, turning off this automatic caching can save power by having your computer work less. diff --git a/tutorials/flat-coloring.rst b/tutorials/flat-coloring.rst index 0fb466089..4962211ac 100644 --- a/tutorials/flat-coloring.rst +++ b/tutorials/flat-coloring.rst @@ -1,329 +1,329 @@ .. meta:: :description lang=en: Common workflows used in Krita .. metadata-placeholder :authors: - Wolthera van Hövell tot Westerflier :license: GNU free documentation license 1.3 or later. .. _flat_coloring: ============= Flat Coloring ============= So you've got a cool black on white drawing, and now you want to color it! The thing we’ll aim for in this tutorial is to get your line art colored in with flat colors. So no shading just yet. We’ll be going through some techniques for preparing the line art, and we’ll be using the layer docker to put each color on a separate layer, so we can easily access each color when we add shading. .. note:: This tutorial is adapted from this `tutorial `_ by the original author. Understanding Layers -------------------- To fill line art comfortably, it's best to take advantage of the layerstack. The layer stack is pretty awesome, and it's one of those features that make digital art super-convenient. In traditional art, it is not uncommon to first draw the full background before drawing the subject. Or to first draw a line art and then color it in. Computers have a similar way of working. In programming, if you tell a computer to draw a red circle, and then afterwards tell it to draw a smaller yellow circle, you will see the small yellow circle overlap the red circle. Switch the commands around, and you will not see the yellow circle at all: it was drawn before the red circle and thus ‘behind’ it. This is referred to as the “drawing order”. So like the traditional artist, the computer will first draw the images that are behind everything, and layer the subject and foreground on top of it. The layer docker is a way for you to control the drawing order of multiple images, so for example, you can have your line art drawn later than your colors, meaning that the lines will be drawn over the colors, making it easier to make it neat! Other things that a layer stack can do are blending the colors of different layers differently with blending modes, using a filter in the layer stack, or using a mask that allows you to make parts transparent. .. tip:: Programmers talk about transparency as ''Alpha'', which is because the 'a' symbol is used to present transparency in the algorithms for painting one color on top of another. Usually when you see the word ''Alpha'' in a graphics program, just think of it as affecting the transparency. Preparing your line art ----------------------- Put the new layer underneath the layer containing the line art (drag and drop or use the up/down arrows for that), and draw on it. .. image:: /images/en/flat-coloring/Krita_filling_lineart14.png :alt: layer structure for flatting in krita …And notice nothing happening. This is because the white isn’t transparent. You wouldn’t really want it to either, how else would you make convincing highlights? So what we first need to do to color in our drawing is prepare our line art. There’s several methods of doing so, each with varying qualities. The Multiply Blending Mode -------------------------- So, typically, to get a black and white line art usable for coloring, you can set the blending mode of the line art layer to Multiply. You do this by selecting the layer and going to the drop-down that says **Normal** and setting that to **Multiply**. .. image:: /images/en/flat-coloring/Krita_filling_lineart1.png :alt: blend mode setup of line art flat coloring And then you should be able to see your colors! Multiply is not a perfect solution however. For example, if through some image editing magic I make the line art blue, it results into this: .. image:: /images/en/flat-coloring/Krita_filling_lineart2.png :alt: effects of multiply blend mode This is because multiply literally multiplies the colors. So it uses maths! What it first does is take the values of the RGB channels, then divides them by the max (because we're in 8bit, this is 255), a process we call normalising. Then it multiplies the normalised values. Finally, it takes the result and multiplies it with 255 again to get the result values. .. list-table:: :header-rows: 1 * - - Pink - Pink (normalised) - Blue - Blue (normalised) - Normalised, multiplied - Result * - Red - 222 - 0.8705 - 92 - 0.3607 - 0.3139 - 80 * - Green - 144 - 0.5647 - 176 - 0.6902 - 0.3897 - 99 * - Blue - 123 - 0.4823 - 215 - 0.8431 - 0.4066 - 103 This isn't completely undesirable, and a lot of artists use this effect to add a little richness to their colors. Advantages """""""""" Easy, can work to your benefit even with colored lines by softening the look of the lines while keeping nice contrast. Disadvantages """"""""""""" Not actually transparent. Is a little funny with colored lines. Using Selections ---------------- The second method is one where we'll make it actually transparent. In other programs this would be done via the channel docker, but Krita doesn't do custom channels, instead it uses Selection Masks to store custom selections. 1. Duplicate your line art layer. 2. Convert the duplicate to a selection mask. |mouseright| the layer, then :menuselection:`Convert --> to Selection Mask`. .. image:: /images/en/flat-coloring/Krita_filling_lineart_selection_1.png 3. Invert the selection mask. :menuselection:`Select --> Invert Selection`. 4. Make a new layer, and do :menuselection:`Edit --> Fill with Foreground Color`. .. image:: /images/en/flat-coloring/Krita_filling_lineart_selection_2.png And you should now have the line art on a separate layer. Advantages """""""""" Actual transparency. Disadvantages """"""""""""" Doesn't work when the line art is colored. Using Masks ----------- This is a simpler variation of the above. 1. Make a filled layer underneath the line art layer. .. image:: /images/en/flat-coloring/Krita_filling_lineart_mask_1.png 2. Convert the line art layer to a transparency mask |mouseright| the layer, then :menuselection:`Convert --> to Transparency Mask`. .. image:: /images/en/flat-coloring/Krita_filling_lineart_mask_2.png 3. Invert the transparency mask by going to :menuselection:`Filter --> Adjust --> Invert` .. image:: /images/en/flat-coloring/Krita_filling_lineart_mask_3.png Advantages """""""""" Actual transparency. You can also very easily doodle a pattern on the filled layer where the mask is on without affecting the transparency. Disadvantages """"""""""""" Doesn't work when the line art is colored already. We can still get faster. Using Color to Alpha -------------------- By far the fastest way to get transparent line art. 1. Select the line art layer and apply the color to alpha filter. :menuselection:`Filter --> Colors --> Color to Alpha`. The default values should be sufficient for line art. .. image:: /images/en/flat-coloring/Krita_filling_lineart_color_to_alpha.png Advantages """""""""" Actual transparency. Works with colored line art as well, because it removes the white specifically. Disadvantages """"""""""""" You'll have to lock the layer transparency or separate out the alpha via the right-click menu if you want to easily color it. Coloring the image ================== Much like preparing the line art, there are many different ways of coloring a layer. You could for example fill in everything by hand, but while that is very precise it also takes a lot of work. Let's take a look at the other options, shall we? Fill Tool --------- .. image:: /images/icons/fill_tool.svg :alt: fill-tool icon In most cases the fill-tool can’t deal with the anti-aliasing (the soft edge in your line art to make it more smooth when zoomed out) In Krita you have the grow-shrink option. Setting that to say… 2 expands the color two pixels. Threshold decides when the fill-tool should consider a different color pixel to be a border. And the feathering adds a extra soft border to the fill. Now, if you click on a gapless-part of the image with your preferred color… (Remember to set the opacity to 1.0!) Depending on your line art, you can do flats pretty quickly. But setting the threshold low can result in little artifacts around where lines meet: .. image:: /images/en/flat-coloring/Krita_filling_lineart7.png :alt: colors filled with fill tool However, setting the threshold high can end with the fill not recognizing some of the lighter lines. Besides these little artifacts can be removed with the brush easily. Advantages """""""""" Pretty darn quick depending on the available settings. Disadvantages """"""""""""" Again, not great with gaps or details. And it works best with aliased line art. Selections ---------- Selections work using the selection tools. .. image:: /images/en/flat-coloring/Krita_filling_lineart15.png :alt: selecting with selection tools for filling color For example with the :ref:`bezier_curve_selection_tool` you can easily select a curved area, and the with :kbd:`Shift` + |mouseleft| (not |mouseleft| + :kbd:`Shift`, there's a difference!) you can easily add to an existing selection. .. image:: /images/en/flat-coloring/Krita_filling_lineart16.png :alt: selection mask in Krita You can also edit the selection if you have :menuselection:`Select --> Show Global Selection Mask` turned on. Then you can select the global selection mask, and paint on it. (Above with the alternative selection mode, activated in the lower-left corner of the stats bar) When done, select the color you want to fill it with and press :kbd:`Shift` + `backspace`. .. image:: /images/en/flat-coloring/Krita_filling_lineart17.png :alt: filling color in selection You can save selections in selection masks by |mouseright| a layer, and then going to :menuselection:`Add --> Local Selection`. You first need to deactivate a selection by pressing the circle before adding a new selection. This can serve as an alternative way to split out different parts of the image, which is good for more painterly pieces: .. image:: /images/en/flat-coloring/Krita_filling_lineart18.png :alt: result of coloring made with the help of selection tools Advantages """""""""" A bit more precise than filling. Disadvantages """"""""""""" Previewing your color isn't as easy. Geometric tools --------------- So you have a tool for making rectangles or circles. And in the case of Krita, a tool for bezier curves. Select the path tool (|path tool|), and set the tool options to fill=foreground and outline=none. Make sure that your opacity is set to 1.00 (fully opaque). .. |path tool| image:: /images/icons/bezier_curve.svg By clicking and holding, you can influence how curvy a line draw with the path tool is going to be. Letting go of the mouse button confirms the action, and then you’re free to draw the next point. .. image:: /images/en/flat-coloring/Krita_filling_lineart8.png :alt: filling color in line art using path tool You can also erase with a geometric tool. Just press :kbd:`E` or the eraser button. .. image:: /images/en/flat-coloring/Krita_filling_lineart9.png :alt: erasing with path tool Advantages """""""""" Quicker than using the brush or selections. Also decent with line art that contains gaps. Disadvantages """"""""""""" Fiddly details aren’t easy to fill in with this. So I recommend skipping those and filling them in later with a brush. Colorize Mask ------------- So, this is a bit of an odd one. In the original tutorial, you'll see I'm suggesting using G'Mic, but that was a few years ago, and g'mic is a little unstable on windows. Therefore, the Krita developers have been attempting to make an internal tool doing the same. It is disabled in 3.1, but if you use 4.0 or later, it is in the toolbox. Check the Colorize Mask for more information. So it works like this: 1. Select the colorize mask tool. 2. Tick the layer you're using. 3. Paint the colors your want to use on the colorize mask 4. Click update to see the results: .. image:: /images/en/flat-coloring/Krita_filling_lineart10.png :alt: coloring with colorize mask When you are satisfied, |mouseright| the colorize mask, and go to :menuselection:`Convert --> Paint Layer`. This will turn the colorize mask to a generic paint layer. Then, you can fix the last issues by aking the line art semi-transparent and painting the flaws away with a pixel art brush. .. image:: /images/en/flat-coloring/Krita_filling_lineart11.png :alt: result from the colorize mask Then, when you are done, split the layers via :menuselection:`Layers --> Split --> Split Layer`. There's a few options you can choose, but the following should be fine: .. image:: /images/en/flat-coloring/Krita_filling_lineart12.png :alt: slitting colors into islands Finally, press **Ok** and you should get the following. Each color patch it on a different layer, named by the palette in the menu and alpha locked, so you can start painting right away! .. image:: /images/en/flat-coloring/Krita_filling_lineart13.png :alt: resulting color islands from split layers Advantages """""""""" Works with anti aliased line art. Really quick to get the base work done. Can auto-close gaps. Disadvantages """"""""""""" No anti aliasing of it’s own. You have to choose between getting details right or the gaps auto-closed. Conclusion ---------- -I hope this has given you a good idea of how to fill in flats using the various techniques, as well as getting a hand of different Krita features. Remember that a good flat filled line art is better than a badly shaded one, so keep practising to get the best out of these techniques! +I hope this has given you a good idea of how to fill in flats using the various techniques, as well as getting a hand of different Krita features. Remember that a good flat filled line art is better than a badly shaded one, so keep practicing to get the best out of these techniques!