Paint Mode: Design Discussion & Feedback

@SUPAVISI Layering color attributes should be done in the material.
And yes, Filling in your selection should still be possible in the new Paint Mode.

@Rizumu85 Thanks for walking us through your workflow!
This should be possible just in Blender if all features are implemented. But this will still take a lot of time.
Brush management and the layered textures are separate projects from Paint Mode.
Additional brush settings would also be great to include. Especially the color based on pressure sensitivity should be easy to support.

My questions to you are:

  • Do you insist on a brush that instantly fills in faces or is it an acceptable workflow to first select the faces and then fill them (2 separate tools).
  • What do you expect from the liquify tool? I might misunderstand what that term stands for since it’s differently used throughout other software?
  • What do you want to use the vector pen tool for? Is it for selections, outlines or filling in areas? Maybe something else?

A brush marketplace would probably be something external by the community like blendermarket.com. Once we have a brush asset system in place it would be easy for others to author and share their brushes.

5 Likes

Keyboard shortcuts conflicts, for example.
A shortcut in sculpt mode invokes a tool, while in paint mode invokes a different one. The S key for example. In Sculpt mode enables scale. In paint mode enables the color picker. Now if both modes are the same, what happens?

Do we forget about one of the shortcuts. Do we now work slower in one of the areas?

And what I have said about the S key, applies for more, if they add more tools to both modes.

We have a task for the Sculpt Mode conflicts: ⚓ T97957 Sculpt Mode Painting
Paint Mode should be allowed to have it’s own unique shortcut bindings if it leads to a faster workflow.

EDIT: Switched out the link. Now it’s directed to the correct task.

This would need to be tested but I personally believe that this would be highly unintuitive and unpredictable.
If there’s a developer willing to prototype this then we could look more into it. But the current shortcuts and behaviour works fine.

I agree and I think this is a limitation of shortcuts themselves. They don’t make enough use of menus and pie menus specifically (these have the advantage of being accessible very quickly, almost as much as a keystroke). Use a pie menu and suddenly you can cram 8+ shortcuts under a single keystroke+flick.

@JulienKaspar Is there already a design task for brush management?
It should be possible to import Krita or .abr (Adobe Ps) file brushes, just like Substance painter is able to import Photoshop brushes. A tight integration with Krita would be particulalry great as both as open source. For me, those things are vital for texture painting and one of the reasons I refrain from making custom brushes (knowing that they may become obsolete).

2 Likes

Brush management will be another big project for another time.
A brush engine rewrite was is also a regular topic and is also a separate project. It would be great to offer more import/export options like you mentioned.

But for now we are focusing all of the effort on getting the fundamentals right as soon as possible:
A high performing Paint Mode in the 3D viewport with an intuitive interface, essential toolset for painting and easy selection/visibility options.

9 Likes

Unintuitive?
Actually now the pen tip works everywhere on the UI elements as mouse click, which is counterintuitive while you paint. The pen with the pressure sensitivityis an analog input, then you change ie. the spacing of the brush to 5 or 3, but can’t, because it runs away to 0. Yes you can use the Shift modifier, but that’s also an unintuitive step pressing a button for this, rather than just applying a gentle pressure, as you’re doing so for thin/soft strokes.
This whole idea is about to make these UI interactions with Blender more intuitive, fluent and joyful too. Perhaps if you tried other software with such features, you’d miss this.
Pablo likes it, I asked him recently in Blender Today Live (starts 38:04) :

Unpredictable?
These Paint Mode stuff I’ve mentioned would be just the fraction of the benefits, details are in the proposal. The situation now is unpredictable in most cases, many value sliders are too slow, or too fast, manipulators doesn’t allow fine grained adjustments from a distance, or in many cases you should grab it multiple times until it reaches the desired distance. Again, yes, there is the Shift modifier, but it’s binary. You can think of this pressure sensitive sliders/manipulators feature as the analog (let’s say organic :nerd_face:) version of the Shift modifier.

Yes, in practice, it’s much more important to get the maximum performance and minimum memory footprint (and even avoid the chance for new conflicts/bugs), rather than having all the tools at the user’s disposal at once. Swithching is not a big deal with pie menu, this is the little price for many technical benefits. I’d actually suggest to keep the old way: attribute paint mode (incl. vertex color, weight etc.), texture paint mode and sculpt mode.
Perhaps an intermediate solution could work with a UI trick:
Brush Mode, which has these 3 submodes, user can switch with a similar 3 button group as the vertex/edge/face in Edit Mode (with wider buttons to avoid confusion)

Thank you for explaining the availabilities of those functions in blender right now, I will look into then and see how it could work.

This will definitely be a must have for someone like me, I can accept not having other functionalities, or that you cannot export it to psd and back and forth. I just need one pixel-based layer system, that can at least export each layer as png, so I can manually import them into another software. And then, the the possibility to import back png as one layer. In this way I still can enjoy working in blender for 3D and 2D view texturing, and export them back and forth to an external editor. While the developers don’t have to think about psd functions compabilities, like vector layers, text layers, filter layers.

I will see what I can do to make proper proposal for this feature.

Hey, I have created a rightclickselect’s suggestion about how I want the vector pen tool to be in Blender.
Vector Pen tool for texture painting both in 2D and 3D ⁠— Right-Click Select (blender.community)

I am fine with having them as two separate tools.

Liquify tool is not common to be used for 3D texturing, but what I do is when I painted a very stylized texture and painted a little off, I use liquify tool in an external editor. Or for placing patterns that cannot be procedural placed in a model. Though this latter one can be replaced using a good transform tool.

In the style that I do, vector pen tool is for:

  1. Filling areas of shadow in anime style, sometimes generating this with an outline.
  2. Making smooth lines for lines inside a texture.

    I want it to be possible in 3D view because sometime, when you have created a smooth block of color in 2D editor, and import in back to view it in 3D, that smooth block of color will have some distortion due to UV stretching. So, what I do to fix this is to manually paint some pixels on top. Since I use Substance Painter to do this, and since Substance Painter does not allow me to modify any image (png or psd) imported back to it. I have to paint in two different new layers, the parts I want to erase, and the parts that I want to extend, and then export these two layers separately. After that, I will need to create a selection from those two layers, and fill/erase the modified parts in the original vector layer (in which the vector layer is now transformed as a pixel layer to be able to do this).
5 Likes

First, thank you for this. I think there is big opportunity here as there really aren’t a whole lot of options out there for the hand-painting crowd.

A few suggestions:

  • 3D coat has a feature called “Edit projections in External Editor” that basically makes a 2D image of the current 3D viewport view/camera and automatically sends the .psd file to Photoshop or your image editor of choice. Then, you paint in your image editor using whatever special brushes/tools you need and save. Upon saving, 3Dcoat projects the new details back onto the corresponding layer, and you can continue painting as normal. This sounds minor, but is incredibly useful and a huge timesaver to be able use familiar custom brushes/tools in a 2D editor for detailing during the painting process. I know this can be done in Blender right now in a rather roundabout way with many more steps using camera projections, but it would really be nice to have the compositing work reduced to a few clicks like this. Not sure what’s involved with getting .psd support, but even .png would work as it supports alpha and this technique is mostly used for albedo anyway - it’s not a big deal to flatten to one layer before saving/projecting back.

  • More available strength on blur brushes, and maybe some different modes on them for blending colors together. Or, ideally, dedicated blending brushes. Again, it sounds minor, but being able to run one of these brushes over some painted strokes and blend them in a single motion takes a lot less time than the typical sample, stroke, sample, stroke at low opacity with the paintbrush to build up a color transition. Note that this is not the same as smudging/smearing. See blending brushes in 2D programs like Corel Painter or Clip Studio Paint for reference.

  • The interface for creating/saving custom brushes could be more intuitive, and again, it should probably just be a matter of a few clicks to save your custom brushes and have them load during every Blender session.

Thanks for taking feedback from the community - looking forward to the new version!

2 Likes

“3D coat has a feature called “Edit projections in External Editor” that basically makes…” blender already have this feature.
Options — Blender Manual

My opinion on the subject is that we need a separate workspace for painting but the tools for painting should still be kept in sculpt mode, right now we could rearrange the keymap to fit the current painting tools available but in the future we would really be limited and since blender is heavily based on shortcut it would be a detriment.

So the solution is to keep the paint tools inside sculpt mode for people who want to assign their personnal shortcut and have a paint mode with the regular texturing workflow shortcut.
I think paint mode and sculpt mode should in theory be the same one but just with a different interface and shortcut, so when you switch from on to another there is no lag since you don’t really switch mode more than you switch interface.

1 Like

Well, huh. I’ve been doing that same thing using a far too complicated method for far too long :man_facepalming:… Thanks for the tip.

I know it’s work in progress and all, but this looks a bit concerning - ⚙ D14978 Mask invert experiment

If I was to mask (as in “do not want to modify those parts”) out the eyes for example, how would I do that?

I know it was already mentioned somewhere, but I just wanted to press to please make this behavior optional.

That’ exactly the idea.

We are aware. We are currently in the process of coming up with & testing a solid deign.
We’ll only change the current behaviour of sculpt mode if it turns out to be an overall improvement.
Also the old way of masking should still be very accessible.

1 Like

One thing that came to my mind since the paint mode is compared to the sculped mode, I was wondering if you also plan to include some kind of option like the Dyntopo tool.
If you start painting an object, like a face, your texture size and the amount of pixel you can use is limited to the resolution you have chosen in the beginning of the process, right?
What if you come across a part of the mesh that needs some extra detail, but the resolution is to small?
How about a funktion called Dyntexto who is dependent on the pen pressure and the zoom factor, like the Dyntopo is.
Instead of adding faces to the mesh, it would add areas of higher dense pixels to the texture.
Regarding the coloring of masks, how about color coding them like layers in PS or Gimp?
This way one can tell them better apart, especially if you work in finer details with a lot of masks.

3 Likes

That sounds like reinventing ptex :thinking:
That technology didn’t catch on for various reasons other people might explain.

But this is good idea in general. What about providing easy access to operators which double / half resolution of current image (or last touched udim tile)? So instead of manually going into image viewer, finding the correct image, choosing resize from menu and typing *2 or /2 in X and Y fields you just press one of two buttons right in sidebar. Something like this:

изображение

A lot less steps and these operators could be keymaped by user or added to quick favourites for convenience.

2 Likes

You see me suprized, because it was just an idea that jumped on me in an instand, because I really like using Dyntopo a lot and I thought it would be good to have something similar in the painting/texturing department as well.
The Ptex thing you mentioned, I never heard of it.
The thing with Dyntopo is, it does not increase the whole mesh/face count, it only influences the part you are modeling.
If I understand your suggestion right, you double the resolution or half it for the whole image, right?
This would lead to very large texture files sizes.
I’m not a programmer, so I’m talking up my ass here, but I think this could be made with a stack of layers from differend resolutions.
This would also mean it’s none-destructive, to the point the real texture will be build.
But as I said, I have really no clue what I’m talking about.
Could be absolut nonsens.

1 Like

I’d rather add a new empty layer that is mixed/alpha-over with the first color.png with higher resolution instead of changing the resolution of color.png. It’s what I’ve seen a lot of concept artist youtubers do in photoshop.

An item in the background needs more details. Select that region. Copy to new file. Double or quadruple resolution. Paint details. Bring back into the original document as a smart object and resize to fit.

3 Likes