Difference between revisions of "Brush Creation and Edit Instances"

From GIMP GUI Redesign
Jump to: navigation, search
Line 81: Line 81:
 
Many brushes could be organized by the designer in origin. When a brush is created the author could organize the tags that each brush has by default. This feature is a great way to customize the author's sets and a facility to use the sets on GIMP.
 
Many brushes could be organized by the designer in origin. When a brush is created the author could organize the tags that each brush has by default. This feature is a great way to customize the author's sets and a facility to use the sets on GIMP.
 
</div>
 
</div>
 
<!-- ===1st Proposal to Contextual Menu to [Brushes Menu] (Two Levels)===
 
Use the two levels in a way to organize the tasks between creation and interaction to edit, duplicate and delete them.
 
 
====|<|Contextual Menu [Brushes Dock]====
 
 
'''First Level'''
 
|<|Contextual Menu
 
    Brushes Edit Menu [1]    >
 
    Create a Brush:...      [label divisor]
 
    Parametric...            [2]
 
    Elliptic Feathery...    [3]
 
    Elliptical...            [3]
 
    Rectangular Feathery...  [3]
 
    Rectangular...          [3]
 
    Custom Brush...          [4]
 
    ---
 
    Add Tab                  >
 
    Close Tab
 
    Detach Tab
 
    Lock Tab to Dock
 
    ---
 
    ...
 
 
'''Second Level (opening Brushes Menu)'''
 
|<|Contextual Menu
 
  \_Brushes Menu [1]    >
 
                        \_Edit Brush [5]
 
                        ---
 
                        \_Duplicate Brush
 
                        \_Copy Brush Location
 
                        \_Show in File Manager
 
                        \_Delete Brush
 
                        ---
 
                        Refresh Brushes
 
 
=====Messages and Scripts=====
 
* [1] The original name of the menu was 'Brushes Menu' to 'Brushes Edit Menu' to render clear the function of this menu.
 
* In each message box of [2] and [3] options, when we have mouseover, we need to write or repeat the kind of brush that will be created, for instance:<br>
 
** [2] To parametric kind, "Create .vbr parametric brush."<br>
 
** [3] To raster kind, an example, instead in Elliptical, Feathered... "Create an elliptical brush with feathered edges" > "Create a .gbr raster elliptic brush with feathered edges. "
 
* To dialogue of windows of the scripts, we need to identify the kind of brush that we are creating, raster or parametric.<br>
 
* [4] To Custom Brush, we need to create a new script to create custom raster brushes. IMO, this script must be capable of creating an empty .xcf archive with a feature to set the size layer, the layer number, if is grayscale or RGB, transparent or white background.<br>The message of the 'mouseover' option could be: "Create a custom raster brush."
 
* [5] a conditional option: if is parametric send it to Parametric Editor, if is raster open the archive as an image.
 
* The ideal naming of the second-level options is to have the name of the asset in each voice, for instance:<br>instead of having a simple '\_Edit Brush' to have \_Edit 'Brush Name #1'<br>In this way, we can avoid making wrong choices.
 
 
===2nd Proposal to Contextual [Brushes Menu] (One Level)===
 
Use a unique level, in this case the 2nd level, to organize the tasks between creation and interaction to edit, duplicate and delete them.
 
 
====|<|Contextual Menu of the [Brushes Menu]====
 
At this level, after clicking on the |<| button, the menu will be slim with only the traditional features of the tabs. In this way, the workflow is more linear and the whole Creation/Edit is placed only on the 2nd level of the Contextual Menu when we click on 'Brushes Menu'.
 
 
'''First Level'''
 
|<|Contextual Menu  >
 
                      \_Add Tab >
 
                      \_Close Tab
 
                      \_Detach Tab
 
                      \_Lock Tab to Dock
 
                      ---
 
                      ...
 
 
'''Second Level opening [Brushes Menu]'''
 
|<|Contextual Menu
 
  \_Brushes Menu  >
 
                  \_Edit Brush [1]
 
                  Create a Brush:...      [Divisor label]
 
                  \_Parametric...          [2]
 
                  Raster Brush:            [Divisor label]
 
                  Elliptic feathery...    [3]
 
                  Elliptic...              [3]
 
                  Rectangular feathery...  [3]
 
                  Rectangular...          [3]
 
                  Custom Brush...          [4]  
 
                  ---
 
                  \_Duplicate Brush
 
                  \_Copy Brush Location
 
                  \_Show in File Manager
 
                  \_Delete Brush
 
                  ---
 
                  Refresh Brushes
 
 
=====Messages and Scripts=====
 
* [1] A conditional option: if is parametric send it to Parametric Editor, if is raster open the archive as an image.
 
* The ideal naming of the second-level options is to have the name of the asset in each voice, for instance:
 
** Instead of having a simple [_Edit Brush] have [_Edit 'Brush Name #1] In this way, we can avoid making wrong choices.
 
** In each message box of [2] and [3] options, when we have mouseover, we need to write or repeat the kind of brush that will be created, for instance:
 
* [2] To parametric kind, "Create .vbr parametric brush."
 
* [3] To raster kind, an example, instead in Elliptical, Feathered... "Create an elliptical brush with feathered edges" > "Create a .gbr raster elliptical brush with feathered edges."
 
** Also, I thought to simplify the terms Elliptical to Elliptic and Fetheared to Feathery.
 
* [4] To Custom Brush, we need to create a new script for custom raster brushes. IMO, this script must be capable of creating an empty .xcf archive with a feature to set the size layer, the layer number, if is grayscale or RGB, transparent or white background. The message of the 'mouseover' option could be: "Create a custom raster brush."
 
* To window dialogues of the scripts, we need to identify the kind of brush that we are creating, raster or parametric. -->
 

Revision as of 21:11, 10 March 2024

Current Edit and Creation Instances of Raster and Parametric Brushes

On GIMP the brushes parametric and raster are shown together, in the same list on Brushes Dialog. This causes some issues when a user tries to edit a brush:

  1. If is parametric the brush opens correctly the parametric brush editor;
  2. If is raster the brush is opened also on the parametric brush editor (evidently, isn't possible to edit the raster here).
  3. Bug 994 - Improvements on brush creation and their filtering (tags) | Proposal (edit)

Is curious to note that the contextual is the same for the two kinds but it recognizes when is a parametric brush... the 'Open Brush as image...' is disabled.

Simplifying the flow to create/edit raster brushes directly on the dialogue lists

Ideally is fine to have a unique dialog list to show parametric (.vbr) and (.gbr, .gih) brushes... is necessary to correct any kind the way to edit them.

The menu of these assets in my opinion must be modified in this way:

  1. Divide the brush assets by category (raster and parametric). Would be interesting to have a default tag embedded and independent of user choices.
  2. Each brush asset category enables the editing kind, for instance, raster or parametric brushes have a dedicated way (conditional option) to open this asset as an image or as a vector, respectively.

Proposal Two Levels Simplified

It was needled the Parametric Brush and Raster Brush to classify the kinds of them: Parametric and Raster Brush (shaped versions).

|<|Contextual Menu of the [Brushes Menu]

Second Level opening [Brushes Menu]

|<|Contextual Menu
  \_Brushes Menu  >
                  Edit Brush               [1]
                  New Brush         >
                  ---
                  Duplicate Brush
                  Copy Brush Location
                  Show in File Manager
                  Delete Brush
                  ---
                  Refresh Brushes 
|<|Contextual Menu  (Opening 'New Brush' menu)
  \_Brushes Menu  >
                  New Brush         >
                  \_Parametric...          [2]
                  \_Raster Brush    >
                    Elliptic...
                    Elliptic feathery...
                    Rectangular...
                    Rectangular feathery...
Messages and Scripts
  • [1] A conditional option: if is parametric send it to Parametric Editor, if is raster open the archive as an image.
  • In each message box of [2] option, when we have mouseover, we need to write or repeat the kind of brush that will be created, for instance: to parametric kind, 'New Parametric Brush...'. This option opens the Parametric Brush Editor.

Brush Editor | To Create/Edit Brushes (Raster (.gbr and .gih) or Parametric)

Current Status

The current Brush Editor is usable only to create and modify the .vbr brushes (parametric). The idea is to make it usable to create also raster brushes (.gbr and a simple .gih brush with a unique dimension).

Improvements and New Features

  1. The Shape selector must have a button to load a seed stain for irregular shapes or informal stains. Already we can create the simple .gbr brushes with simple shapes, e.g., circle, square or diamond the current buttons could be used to link with specific scripts as such we already exist or these procedures be improved with a different code. When we are creating the animated brushes, we can have an aid filter to create the variations in these stains to complete the array of the .gih brushes. In this way, it could be simplified the load the stains in different layers of the .gih brush.
  2. A selector to have RGB or Grayscale Brushes. IMO is very useful to have both types for raster and parametric brushes.
  3. Selector of Kind Brush: Parametric or Raster
    1. If Parametric we have the current features already existent.
    2. If Raster we need to decide if is a .gbr or .gih brush. For them we have made choices around the stains, regular or irregular. In these cases, we have different procedures:
    3. If it is a .gbr raster, the condition is more simple and the final brush has the shape stain chosen by the user. After we have the instance to control Size, Spikes(?!), Opacity(?!), Hardness, Aspect ratio, Angle and Spacing to finalize the brush creation with a 'Save Brush'.
      1. If it is a .gih raster, we have different choices for the unique dimension of the brush: how many variations we want (Cells = Layers) and which parameter we will use for these variations (angular, incremental, pressure, velocity or random). Another important simplification is to have an aid app to create variations of the seed stain to load each Cell = Layer. IMO, I think using Morphing, Hardness/Opacity variations. When we have a morphing effect we need two stains to make an efficient variation for painting brushes. The general idea is to have a fast way to create .gih brushes for painting tasks without complex interactions with the array matrix of the .gih. The scope of these brushes is similar to the current Acrylics series, for instance. To elaborate and complex brushes, we think that the current method using the array is yet useful... or we need also to think of a plugin to solve, in short, some arrays of .gih brushes.
        1. 3b3. After making the choices of .gih brush we proceed to creation of brush.

Size Brush

For the raster brushes normally we have two size dimensions, length and width. On the Parametric Brush Editor, we have a radius, I propose to use the diameter (in this way we have the same method to build raster and parametric brushes). For instance, if you need a parametric brush of 100 pixels we need to create a brush with 50 pixels radius on the current editor.

Current features of Brush Editor applied for the raster brushes

The controls of Hardness, Aspect ratio, Angle and Spacing are usable completely to create raster stains with similar characteristics of .vbr brushes. Spikes - are usable also to create different geometric shapes of the regular circle, square and diamond raster brushes. Opacity - I am not sure if is useful to have an 'Opacity control' for the raster stains... the hardness has a similar or an approximated effect but works as a border feathering.

Preview of brushes

The current preview is focused on the .vbr parameter. To have a universal preview for all brushes, parametric or raster, we need to implement a preview based on the Path with 'Paint Along Path' (dynamics On or Off). Each time that we do a change in the editor the path is loaded with the new instance of values present on the Brush Editor. For the condition of static shape, with a raster brush, we need to see if is sufficient the feature of Edit/Stroke Selection ('Paint along the selection outline'). For instance, using a small circular shape selection is possible to have almost the effect of the dab... is an approximated effect.

Fields to Author, License and Comments

In the dialogues to build brushes on GIMP is interesting to have three new fields:

  1. Author Name
  2. License
  3. Comments

Tag Field

Many brushes could be organized by the designer in origin. When a brush is created the author could organize the tags that each brush has by default. This feature is a great way to customize the author's sets and a facility to use the sets on GIMP.