Metlivi Blog

How to Make a Halftone Brush with Pressure-Sized Dots on a Fixed Grid in Krita

To make a halftone brush with pressure-sized dots on a fixed grid, use a repeating grayscale texture and connect pen pressure to its strength. Keep the pattern’s scale and offset fixed while pressure reveals larger or smaller areas around each dot center.

This tutorial uses Krita’s Pixel Brush Engine to build a reusable brush for shading character artwork. The goal is specific: pressing harder enlarges the dots, while their centers remain aligned across separate strokes. You will create a pattern, configure the brush, and check its behavior on the canvas.

October 29, 20267 min readBy Metlivi Editorial Team
Section 1

What should pressure change in a fixed-grid halftone brush?

Separate three controls before adjusting anything: the brush footprint determines where you paint, the grid pitch determines the distance between dot centers, and the dot diameter determines how much of each cell is covered. Krita’s screentone documentation distinguishes the repeating screen grid from the image’s pixel grid. Krita Manual: Screentone

For this brush, pressure should change the revealed dot diameter. Changing the brush footprint alone gives you a wider patch of texture. Changing grid pitch changes the spacing throughout the pattern.

A grayscale pattern supplies the intermediate values needed for gradual growth. Designer David Revoy’s original texture research illustrates this with dots that transition from black centers to white surroundings: different cutoffs reveal different portions of each dot. That historical explanation supplies the principle; the current Krita controls appear below. Mockup and feature design: textured brush

Section 2

What do you need before building the brush?

Use Krita with a stylus whose pressure input already works. This walkthrough follows the controls described in the Krita 5.3 manual. Create a test document with a white background and a separate paint layer so you can inspect dark marks clearly.

Start with the Pixel Brush Engine. It supports texture settings and generates strokes from successive brush-tip impressions. A large brush footprint can therefore reveal several cells of your repeating pattern at once. Krita Manual: Pixel Brush Engine

Although Krita also has a Grid Brush Engine, its Division by pressure option increases the number of subdivisions as pressure rises. That changes the grid structure, so leave that route aside for this particular task. Krita Manual: Grid Brush Engine

Section 3

How do you create the repeating dot texture?

Create a small, square document for the pattern. The following dimensions are illustrative starting values, chosen to make alignment easy to inspect:

  1. Make a 32 × 32 pixel document with an opaque white background.
  2. Select an opaque black-to-white gradient, with black at the starting point.
  3. Choose the Gradient Tool and set its shape to Radial and repeat to None.
  4. Drag from the center of the tile to the midpoint of its right edge. The intended result is black at the center, becoming white at a radius of approximately 16 pixels.
  5. Disable gradient dithering for this geometric test pattern.

Krita’s radial gradient starts at the point where you begin dragging. Its None repeat setting extends the gradient beyond its endpoint; the outer area should therefore remain white. Check the actual tile before proceeding, and reverse the gradient if its center is white. Krita Manual: Gradient Tool

The tile must contain intermediate grays. A hard black circle surrounded by white provides few intermediate boundaries for pressure to reveal. Preserve the smooth radial transition during pattern creation; adjust the resulting brush edges later.

Open the pattern dropdown in the toolbar, choose Custom, and press Update. Capture the whole tile, then choose Add to predefined patterns. Krita can generate patterns from the canvas and save them as reusable resources. Alternatively, export the tile as PNG and import it through the Patterns docker. Krita Manual: Patterns

Section 4

How do you configure the brush and pressure response?

Select a simple Pixel Brush preset and press F5 to open the Brush Settings Editor. You can also create a fresh Pixel Brush through the editor’s preset chooser and engine menu. Krita Manual: Loading and Saving Brushes

Choose a round Auto Brush tip with a firm edge. Try a diameter of 160 pixels and spacing around 0.1 as initial test values. This footprint spans several 32-pixel cells. Brush-tip diameter controls the footprint, while spacing controls the distance between successive impressions. Krita Manual: Brush Tips

Disable pressure under Size. Under Opacity and Flow, disable pen settings and start both at 100%. Opacity controls stroke transparency, while flow controls individual dab transparency; holding them steady makes the dot-growth test easier to interpret. Krita Manual: Opacity and Flow

Configure the texture as follows:

Control Starting setting
Texture → Pattern Your radial dot tile
Scale 1.0
Horizontal and vertical offsets Fixed, initially zero
Random offsets Disabled
Texturing mode Height
Cutoff policy Disabled initially
Strength Enabled and controlled by Pressure

Height offers a wider strength range than Subtract, including full coverage. Keep the initial cutoff unrestricted so you can observe the full response. Krita Manual: Texture

Use ordinary Pressure, which follows increasing and decreasing stylus pressure. Avoid PressureIn here: that sensor retains the highest pressure reached within the stroke when you ease off. Start with Pressure as the only active Strength sensor. Krita Manual: Sensors

Draw a slow stroke while increasing pressure, then decreasing it. If you obtain expanding holes rather than expanding painted dots, toggle Invert Pattern. Adjust Strength’s pressure curve so the useful range stops before the pattern becomes solid. Keep scale and offsets unchanged while tuning this response. Krita Manual: Texture

Section 5

How do you choose useful dot sizes?

Use coverage to decide how far the dots should grow. For ideal, non-overlapping circular dots on a square grid, the covered fraction is π × (diameter ÷ 2)² ÷ pitch². This is a geometric illustration, rather than a measurement of Krita’s rasterized output.

With a 32-pixel pitch, the calculation gives:

Dot diameter Approximate cell coverage
8 pixels 4.9%
16 pixels 19.6%
24 pixels 44.2%

Doubling diameter quadruples covered area. That explains why a brush can become visually dark quite quickly near the upper end of its response. For an airy texture, use the smaller portion of the diameter range; for a darker patch with visible gaps, extend it gradually.

Treat those diameters as visual calibration targets. A pressure value of 50% does not establish a particular diameter: the gradient profile, texture processing, and pressure curve all influence the result. Make three separate swatches at light, medium, and firm pressure, then adjust the curve until those swatches provide useful distinctions.

Section 6

How do you check that the grid stays fixed?

Run this canvas test before using the brush on finished artwork. It tests alignment independently from the appearance of one attractive stroke:

  1. Paint a broad patch at medium pressure.
  2. Lift the stylus and begin another stroke from a different location, crossing the first patch.
  3. Inspect whether dot centers coincide in the overlap.
  4. Paint a third stroke in a different direction.
  5. Change only the brush footprint and repeat.

The intended result is a wider or narrower painted region with the same underlying center positions. Double rows or shifted centers indicate that the pattern registration needs attention. Return to the texture settings and confirm that offsets are fixed and random offsets are disabled.

Next, compare a single pass with repeated passes. If repeated painting changes the tone substantially, evaluate the preset’s opacity, flow, and painting mode before judging its pressure curve. Krita distinguishes Wash, which treats opacity as stroke transparency, from Build-up, which treats it like dab transparency. Krita Manual: Opacity and Flow

Section 7

How do you refine edges and save the finished brush?

Inspect the dots at a magnified view. If their edges are too soft for the artwork, try Sharpness, which applies a threshold to the brush mask, and adjust Soften Edge. Keep its pressure response disabled initially so you can evaluate one changing parameter at a time. Retest the light swatch afterward: aggressive thresholding can remove small marks. Krita Manual: Options

Also inspect the texture at its intended display size. A pattern that looks pleasing when enlarged may be too fine for a small character illustration. Change grid scale deliberately, then repeat the pressure and overlap tests before continuing.

Choose Save New Brush Preset, give it a distinct name such as “Fixed Grid Pressure Dots,” and save it. Switch to another preset, return to the saved brush, and repeat a short test stroke. Krita distinguishes saved presets from temporary session changes. Krita Manual: Loading and Saving Brushes

Your finished brush should pass two practical checks: pressure changes the visible diameter around each dot center, and separate strokes meet on the same grid. Once those behaviors are dependable, use the brush footprint to control the painted area and pressure to choose the local tone.

Section 8

Sources

Related reading

Keep exploring this topic