Create a GUI mockup for the Brush HUD
Closed, ResolvedPublic

Description

Requirements for the Brush HUD

  1. It should provide the user with easy way of editing the following brush settings:
    • opacity
    • size
    • rotation
    • flow
    • fade
    • ratio
    • spacing
    • SOMETHING ELSE?
  2. The Brush HUD should be available via some easy shortcut. Which one?
  3. The properties attached to HUD should be editable with shortcuts.

Prototype

This is just my draft. You can discard this idea if it is not good enough.

HUD

  1. The Shift+gesture gesture can be split into 1, 2 or 4 sectors. Each sector can be assigned with a brush property.
  2. The properties can duplicate, then the user has wider area for selection.
  3. Currently active sector is highlighted (how?)
  4. Other sectors are grayed out (how?)
  5. Some sectors might be unavailable in the current brush (how to show that?)
  6. If the property doesn't affect the outline of the brush, then its value is printed in the center of the HUD

Configuration GUI

  1. We can have 1, 2 or 3 HUDs assigned to different shortcuts (what are the defaults?)
  2. Each brush parameter can be assigned with editing shortcuts.
  3. Should the user be available to select the step, with which the shortcut modifies the brush?

Related Objects

StatusAssignedTask
Resolvedscottpetrovic
dkazakov created this task.Mar 1 2016, 4:12 PM
tokiedian added a subscriber: tokiedian.EditedMar 1 2016, 5:55 PM

I also add my something-like-mockup to this task...

scottpetrovic added a comment.EditedMar 2 2016, 1:52 PM

I am not sure if configuration options are going to be manageable for this. Most of those brush properties are only supported with certain brush engines like the PIxel brush engine.

If I have a particle brush, I am probably going to want to change the amount of particles for example. With how robust the Krita brushes are, I don't know if giving configuration for this is going to be sane.

How will previewing be handled for rotation and ratio? (or anything else I guess) will you have to change the value and click out of the HUD to see the result?

Ideally i'd like to see a preview, like in the "edit brush settings" brush tip menu. Or perhaps as you drag a value the HUD will disappear so you can see the brush outline on canvas. (like when you use the brush size shortcut)

We might need a bit of discussion about the preview of the brush. Based off previous conversations, I am not sure how technically possible that is with this stretch goal.

It does seems that your issue with configuration, is the same reason we don't have a "brush settings" docker in the first place, so many different engines.

eliotj added a subscriber: eliotj.Mar 2 2016, 8:37 PM

I like scottpetrovic's M20: Brush Settings HUD mockup. It's simply and effective. It gives feedback for all values of parameters at a glance :), without any clicks.

Hi, @scottpetrovic!

Could you suggest what brush options should be available for each brush engine? Should it be the same or vary form engine to engine? I feel the list in your mockup might be a bit too long...

Here is a list of common brush settings for each engine. Most of them are sliders, but a few are drop-down boxes or checkmarks. It might be a good idea if somehow these settings lists could get stored in an XML file or other external text file to be editing or changed later. I can already see people wanting to have different settings for different engines.

Pixel and Bristle

  • if Brush tip is set to "Auto" or "Predefined"

Diamater
Flow
Opacity
Angle/Rotation
Spacing

  • if Brush tip is set to "Text"

Font
Font Size
Spacing
Opacity
Flow

Color Smudge

Diamater
Smudge Length
Smudge Radius
Color Rate
Flow
Opacity
Spacing

Shape

Speed
Smooth
Displace
Winding Fill
Hard Edge

Spray

Diameter
Spacing
Particle Count
Particle Density
Random HSV
Random Opacity

Hatching

Diameter
Opacity
Angle
Spacing
Cross hatch style
Angle
Thickness

Grid

Grid width
Grid height
division level
Particle Type
Random HSV
Random Opacity

Curve

Line width
Opacity
History Size
Curves Opacity
Paint Connection Line
Smoothing

Dyna

Diameter
Angle
Mass
Drag
Angle
Shape

Particle

Particles
Opacity Weight
dx scale
dy scale
Gravity
Iterations

Clone

Diameter
Angle/Rotation
Spacing
Opacity
Healing
Source Point Move

Deform

Deform Mode
Deform Amount
Diameter
Scale
Angle
Spacing

Tangent Normal

Diameter
Tangent Tilt
Painting Mode
Opacity
Angle
Flow
Spacing

Filter

Diameter
Opacity
Angle
Spacing
Filter
Smudge Mode

Chalk

Brush Radius
Opacity
Painting Mode

Silly brainfart: might it be a good idea to add the stablizer/weigthed smoothing 'distance' parameter to this list as well? And just grayed out when basic/no smoothing is active?

@woltherav : A great suggestion. Actually, I started working with the stabilizer always on, and I just drag the slider all the way to the left to almost negate the effect whenever I'm sketching. I don't know about other people, but to me, a single slider that would go from 0 to 100% smoothing (and keeping the other values internal) would do the job. And that kind of slider would definitely fit on such a GUI. That's a bit of a different story I'm telling, but it's something I've had in my Krita notes for a little while now.

On my opinion this is more usefull implement — https://phabricator.kde.org/M20#424

In addition to: content of customized options table is stored inside a brush preset, not a global for all presets in current engine, but with this options table by default — https://phabricator.kde.org/T1749#21686 — if we create a new preset for specific brush engine.

Actually preview is good if it implementable.

P.S. 'Configuration GUI' is good for manage fields position or fields removal. Field position may be change and inside table by pressing a hotkey (like a Ctrl) and rolling — https://phabricator.kde.org/M20#424 — it's simple but it's more hidden (more because we not have 'line of help' like in MyPaint, Blender or Inkscape, see — https://www.dropbox.com/s/nvg9saard9iqtxu/helps%20line.png?dl=0).

rempt closed this task as Resolved.Aug 10 2016, 2:10 PM