Maniphest T71705

Improve Palette management in Paint Modes (Meshes and Grease Pencil)
Confirmed, NormalDESIGN

Assigned To
None
Authored By
Antonio Vazquez (antoniov)
Nov 20 2019, 5:05 PM
Tags
  • BF Blender
  • User Interface
Subscribers
Antonio Vazquez (antoniov)
Christina McKay (CMC)
Dalai Felinto (dfelinto)
Daniel Martinez Lara (pepeland)
Hans Goudey (HooglyBoogly)
JPG (joules)
Julian Eisel (Severin)
9 More Subscribers
Tokens
"Love" token, awarded by rombout."Love" token, awarded by ofuscado."Love" token, awarded by CMC."Love" token, awarded by andreasus."100" token, awarded by Frozen_Death_Knight."Love" token, awarded by 3Rton."Love" token, awarded by Zino."Love" token, awarded by amonpaike."Love" token, awarded by HooglyBoogly.

Description

This is not a task only related to Grease Pencil, but also to any Paint mode.

As part of the Vertex Paint development in Grease Pencil, we have detected some missing features in Palettes and we have decided to fix it, because Palettes look a little outdate and without improvements for several versions.

Missing features/ WishList:

  • There is no default palette.
  • Swatches cannot be re-arranged
  • Colors cannot be sorted
  • Colors can't be named
  • Palettes cannot be merged
  • templatePalette control UI is outdated
  • No ability to import palettes from other software
  • No ability to export palettes to other software
  • Missing easy way to create palettes from images

About default palette, in grease pencil we have implemented a default palette similar to Krita/GImp palette. This palette is required by GPencil, but it would be good idea to set this default palette in Texture Paint and Vertex Paint for meshes too.

Currently, I have solved the Sorting, Moving, Join and some Import modules in Grease Pencil branch, but the list above is the initial ideas.

Related Objects

StatusSubtypeAssignedTask
ConfirmedDESIGNNone
ResolvedPATCHAntonio Vazquez (antoniov)
ResolvedDESIGNAntonio Vazquez (antoniov)
ConfirmedDESIGNAntonio Vazquez (antoniov)
ResolvedDESIGNAntonio Vazquez (antoniov)
ConfirmedDESIGNNone
ConfirmedDESIGNNone
ResolvedDESIGNAntonio Vazquez (antoniov)
ResolvedDESIGNAntonio Vazquez (antoniov)
ResolvedDESIGNAntonio Vazquez (antoniov)

Event Timeline

Antonio Vazquez (antoniov) created this task.Nov 20 2019, 5:05 PM
Antonio Vazquez (antoniov) updated the task description.

Example of moving colors:

Example creating a Palette from Image:

Pablo Dobarro (pablodp606) added a subscriber: Pablo Dobarro (pablodp606).Nov 20 2019, 5:07 PM
Antonio Vazquez (antoniov) added a comment.Nov 20 2019, 5:08 PM

See T71548 for import add-ons

Antonio Vazquez (antoniov) added a subtask: T71548: Import Krita/Gimp and ASE palettes.Nov 20 2019, 5:09 PM
Antonio Vazquez (antoniov) updated the task description.
Antonio Vazquez (antoniov) updated the task description.Nov 20 2019, 5:11 PM

Example of default palette defined in grease pencil branch (equals to Krita default).

Antonio Vazquez (antoniov) added a comment.Nov 20 2019, 5:14 PM

Example of Photoshop default palette imported using new addon of T71548

Antonio Vazquez (antoniov) updated the task description.Nov 20 2019, 5:18 PM
Antonio Vazquez (antoniov) updated the task description.Nov 20 2019, 5:22 PM
Matias Mendiola (mendio) added a comment.Nov 20 2019, 5:25 PM

The palette list does not follow the UI of other lists in Blender, and with new operators we will need more buttons and menus:

Hans Goudey (HooglyBoogly) awarded a token.Nov 20 2019, 8:19 PM
Hans Goudey (HooglyBoogly) added a subscriber: Hans Goudey (HooglyBoogly).

That right side looks quite a bit better, I agree.

Small thing but it would also be cool if "Extract Palette" used the same name as the image for the palette.

noki paike (amonpaike) awarded a token.Nov 21 2019, 2:47 AM
William Reynish (billreynish) added a subscriber: Julian Eisel (Severin).Nov 21 2019, 7:26 AM

Example of moving colors

I really would prefer if we can solve this with drag and drop, rather than adding more Up/Down arrow buttons. Not only is it unsightly and ungainly, it's also impractical if you want to move a color swatch 40 places up, you'd have to click that button 40 times!

@Julian Eisel (Severin) Is this another thing that could be handled by your drag and drop system?

Julian Eisel (Severin) added a comment.Nov 21 2019, 12:07 PM
In T71705#814106, @William Reynish (billreynish) wrote:

@Julian Eisel (Severin) Is this another thing that could be handled by your drag and drop system?

It will not be handled by D4071, but should be once we extend it for T67893: Drag and Drop for UI elements.

Julian Eisel (Severin) mentioned this in T67893: Drag and Drop for UI elements.Nov 21 2019, 12:14 PM
Maciej Jutrzenka (Kramon) added a subscriber: Maciej Jutrzenka (Kramon).Nov 21 2019, 3:58 PM
In T71705#814106, @William Reynish (billreynish) wrote:

Example of moving colors

I really would prefer if we can solve this with drag and drop, rather than adding more Up/Down arrow buttons. Not only is it unsightly and ungainly, it's also impractical if you want to move a color swatch 40 places up, you'd have to click that button 40 times!

@Julian Eisel (Severin) Is this another thing that could be handled by your drag and drop system?

this yes! so much i absolutly hate this up/down arrow design +1 to your idea

Zino Guerr (Zino) awarded a token.Nov 21 2019, 4:12 PM
Matias Mendiola (mendio) added a comment.Nov 21 2019, 6:44 PM
In T71705#814106, @William Reynish (billreynish) wrote:

Example of moving colors

I really would prefer if we can solve this with drag and drop, rather than adding more Up/Down arrow buttons. Not only is it unsightly and ungainly, it's also impractical if you want to move a color swatch 40 places up, you'd have to click that button 40 times!

@Julian Eisel (Severin) Is this another thing that could be handled by your drag and drop system?

Totally agree, but this is somewhat more general for all list controls in Blender. It's not the main topic of this task, we can implement it when drag and drop to rearrange list items is ready

Antonio Vazquez (antoniov) renamed this task from Improve Palette management to Improve Palette management in Paint Modes (Meshes and Grease Pencil).Nov 24 2019, 11:47 AM
Antonio Vazquez (antoniov) updated the task description.
Antonio Vazquez (antoniov) edited a custom field.
JPG (joules) added a subscriber: JPG (joules).Nov 24 2019, 2:25 PM

Great to see palettes getting some care.
From the python API perspective, I would like also to use palettes generally, (specifically with materials/shader editor), but any kind of flexibility would be useful.
At the moment, I had trouble getting a custom palette property to behave, it seems template_palette is limited in scope and not much is exposed within the API and locked down to update parts in the UI it only knows about.
I wouldn't know where to start since Palette and specifically how PaletteColor behaves is quite unique CTRL-click to change, click to update the color picker; but currently only the color picker it knows about.
But since Palette.colors is a collection property itself, perhaps a new template?

template_palette_colors(myproperty.active_palette, "colors", myproperty, "picker_color")

Not to mention the required operators (new, remove, etc)

Just some thoughts. Thanks again.

ronan ducluzeau (zeauro) added a subscriber: ronan ducluzeau (zeauro).EditedNov 26 2019, 8:12 AM

I don't know if it is possible. But it could be interesting to keep space to be able to display it as an horizontal ribbon.


I imagine that by pressing Tab with mouse pointer over tool settings bar, this bar would display a ribbon of colors instead of brush settings.

Such behavior would be as useful for a weight paint palette.

rob wesseling (robwesseling) added a subscriber: rob wesseling (robwesseling).Nov 26 2019, 11:18 AM

An additional idea:
I remember in another render engine (older version of Appleseed I believe) we were able to define colors, like global colors that can be re-used in shaders.
If we could re-use the colors of a color palette for shaders then we could also just change the color palette to change the colors of all shaders in one go. To get an idea, check: https://youtu.be/DkznarCvPEQ?t=33

T.R.O. Nunes (3Rton) awarded a token.Nov 26 2019, 8:37 PM
Kenn Nyström (Frozen_Death_Knight) awarded a token.Nov 27 2019, 1:10 AM
JPG (joules) added a comment.EditedNov 27 2019, 4:22 AM
In T71705#817743, @rob wesseling (robwesseling) wrote:

An additional idea:
I remember in another render engine (older version of Appleseed I believe) we were able to define colors, like global colors that can be re-used in shaders.
If we could re-use the colors of a color palette for shaders then we could also just change the color palette to change the colors of all shaders in one go. To get an idea, check: https://youtu.be/DkznarCvPEQ?t=33

Yes, currently my addon injects a custom RGB node (named/identifier is unique) into a shader which allows easy access to coloring outside of the shader and to experiment with visual ideas. However palettes at this stage are limited in scope as I mentioned and was only able to resort to this solution which is far from optimal.

JPG (joules) awarded a token.Nov 27 2019, 4:30 AM
JPG (joules) rescinded a token.
Andreas Lutsch (andreasus) awarded a token.Nov 27 2019, 8:03 PM
Michael Otto (mayqel) added a subscriber: Michael Otto (mayqel).Nov 29 2019, 5:29 PM
Christina McKay (CMC) awarded a token.Nov 30 2019, 1:50 AM
Christina McKay (CMC) added a subscriber: Christina McKay (CMC).
zebus3d (ofuscado) awarded a token.Nov 30 2019, 9:59 PM
Antonio Vazquez (antoniov) changed the status of subtask T71548: Import Krita/Gimp and ASE palettes from Unknown Status to Resolved.Dec 2 2019, 10:40 AM
Rombout Versluijs (rombout) added a subscriber: Rombout Versluijs (rombout).Feb 17 2020, 12:44 AM
Rombout Versluijs (rombout) awarded a token.Feb 19 2020, 5:05 AM
Antonio Vazquez (antoniov) closed subtask T71852: Create new Palette from Images as Resolved.Mar 15 2020, 12:40 PM
Antonio Vazquez (antoniov) closed subtask T71849: Reorder Colors in Palette as Resolved.
Antonio Vazquez (antoniov) closed subtask T71847: Sort Palette Colors as Resolved.
Antonio Vazquez (antoniov) closed subtask T71853: Eyedropper for Palette Colors as Resolved.
Antonio Vazquez (antoniov) closed subtask T71854: Define default Palette as Resolved.
William Reynish (billreynish) updated the task description.Mar 15 2020, 1:29 PM
Rombout Versluijs (rombout) added a comment.EditedMar 29 2020, 10:09 PM

Ive added more sorting methods which i believe work better. Also added CSS and fixed KPL and ASE import. Its almost done, i couldn't get it all working for the release though. Im still working on a function which can also restore the order if the user doesn't like the result of the sorting.

Antonio Vazquez (antoniov) added a comment.Mar 29 2020, 10:59 PM

@Rombout Versluijs (rombout) This is great! When you hav ethe code ready, please upload a patch for review.

Rombout Versluijs (rombout) added a comment.Mar 30 2020, 2:44 AM

@Antonio Vazquez (antoniov) ive looked a bit into how to work with that. I haven't found a method to only make a patch for single addons. Is it correct i need to fork all of them? I normally use github for this kind of stuff. I know nothing about the other. Ill try my best to figure out everything.

Currenlty menu looks like this. I would also like to see if i can get the export working. That would be nice if one need to paint in a different application and also want to use the same palette.

Antonio Vazquez (antoniov) added a comment.Mar 30 2020, 7:53 PM

@Rombout Versluijs (rombout) You can do a ptach following these steps:

  1. Create a branch based on master addon
  2. Apply your changes in this temp branch and commit
  3. using ARC: arc diff

if don't use ARC, you can create a patch manually (step 3):

  1. Change to master branch
  2. git diff master mybranch > c:/tmp/mypatch.diff
  3. Copy the diff to the patch screen: https://developer.blender.org/differential/diff/create/
Rombout Versluijs (rombout) added a comment.Apr 1 2020, 12:32 AM

Im on OSX, but what i don't fully understand is why do i need to fork or get the complete addon branch? Or am i not understanding it correct? SOrry for the fuzz

Antonio Vazquez (antoniov) added a comment.Apr 1 2020, 1:07 PM

@Rombout Versluijs (rombout) To have a branch is to get your changes separated and be able to generate a diff patch. A branch in Git just use few bytes, it's not a copy.

Antonio Vazquez (antoniov) added projects: User Interface, Grease Pencil.May 21 2020, 3:44 PM
Julian Eisel (Severin) moved this task from Backlog to Short-Term Scope (Inactive) on the User Interface board.Jun 26 2020, 3:28 PM
Antonio Vazquez (antoniov) removed Antonio Vazquez (antoniov) as the assignee of this task.Aug 18 2020, 4:32 PM
Antonio Vazquez (antoniov) removed a project: Grease Pencil.
Nika Kutsniashvili (nickberckley) added a subscriber: Nika Kutsniashvili (nickberckley).Jan 5 2023, 2:09 PM