Paint Mode: Design Discussion & Feedback

This brush node graph could have an input node “stroke” with output like start, end, pressure, random, position and so on.
Basic Brushes could be presets, like geonode trees
And those trees can have “outside” parameters displayed in the N panel instead of modifier
In ZBrush RGBAZ are just checkboxes/textureSlots/Sliders
UI is important but not the big deal imho.
The goal is the big deal in the long run

I’m all for tech and new concepts but unless proven otherwise I have to go with facts on this one.

You can probably do all that and more in Houdini, fact is that the majority of artists still prefer a nice specialized package to get stuff done.

Until there’s a proof of concept it’s pretty hard to tell what people would prefer and if it’d pay off to invest all the time and money. I’m sure there’s a reason people prefer Zbrush for concepting and maybe coloring meshes, while they very much prefer Substance or Mari for anything pixel based when it comes to texturing.

1 Like

Masking based on a texture (Stencil Mask

Can we get UV mapped image based masking in sculpt mode? Zbrush has had this since probably 2003 or earlier.

1 Like

Please do not forget the text tools

2 Likes

Long ago there was much debate among my photoshop 4 - 7 using friends about its “quick mask”. It turns out only 2 very vocal people in the group used it as-is. Everyone else would go into quick mask, paint over what they wanted to edit, exit quick mask which gives a selection of everything they don’t want to edit, cmd+shift+i to invert the selection.

So as a photoshop user this makes sense to me. But in a sculpting mode there is something intuitive about “marking”/“darkening” the area you care about that I think is more user friendly that lightening it.

I think many photoshop users would agree that they wished quick mask mode would turn the painted area into the selected area instead of having to perform that inversion step. Perhaps Blender can just have an option where after painting a mask it auto-inverts the mask for the convenience of those people who are too lazy to press A and nudge their cursor to the left.

@kevindeguisne
A “node based graph brush” is outside of the scope of this project.
@YAFU
Painting multiple textures/layers at the same time is also not part of this project but the Layered Texture Design.

@Vyach
It would be great to only show the face set contours of the face set under the brush cursor. We’ll have to see if that works performance wise though.

A reworked UI for brushes would be a different project. This should be tackled with brush management.

  1. Of course masks for pixel painting should use pixels, nothing else! And they should be available as b/w layers.

Can you elaborate on this. What b/w layers?

@thinsoldier

Can we get UV mapped image based masking in sculpt mode?

Yes, That’s the idea behind pixel masks.

Also yes, the inversion of the masking behaviour should feel more intuitive overall. Customising the mask overlay to be a different color than black is also optional. In sculpt mode it should definitely stay black as it is.

1 Like

I love the future with these implemented!
Quick question though:
What would happen if I create a texture node, paint (a Mona Lisa) on its canvas then attempt to delete or even just cut the node to the clipboard?
I’m much less careful with nodes than with unsaved, open image documents so this seems like a potential issue to me.

Thinking of alternatives, I think that in Paint or Sculpt Mode, while the selection tools are active (old masks) the selected areas could be colored the same color as in Edit Mode, but with a color gradient, while when using painting tools or sculpture, a contour could delimit the selected areas by approximation, in the same way that Facesets are proposed.
S can be a good key to activate the selection tool (currently scale) or temporarily overlay the selection when hold.

5 Likes

I think this is a good idea when it comes to Dynamic overlays for the mask overlay. That while you use any masking tools, it will show the mask/selection as it actually is, but while sculpting/painting it will show a subtle contour/dashed line.

Another one suggestion.
As far as we can paint to attribute, it will be great to have special mode for painting non-color attributes.
Like weights (heatmap)
Vectors: normalized, remapped to 0—1 visually and with ability to set negative values to brush «color»
Channel painting, lock separately R,G,B,A — really helpful, when you make shadermasks. At this moment I have brush for each channel and separate Add and Subtract, because Add brush do not subtract with Ctrl… And as far as Blender sorts brushes by name, they named like this.
изображение

In my opinion modes should be task / workflow related, so if you want to paint, you should have some relevant (paint) mode available. Entering Sculpt Mode to do painting related tasks makes no sense.

I have different suggestion though - I know it is probably too late, but I would still suggest to re-consider that complete dropping of “Vertex Color” term and replacing it by “Color Attributes”.
Vertex Color is the industry standard term used in every 3D tool, in all the tutorials, game engines, various articles all over internet … and even though I understand that they are technically attributes in Blender, I am afraid that mainly beginners will be confused they can’t find such basic thing anymore.

If the naming can’t be reverted somehow, then I suggest to at least change the defaults when creating a new vcols layer, as regular users will never have idea what to choose there: that’s why I think the defaults should be Domain: Face Corner, Data Type: Byte Color, Fill Color: White to get the same result as creating vcols layer in Blender < 3.2.

Another option would be to create the layer using these defaults without any dialog, and if anybody needs to change it, he can always convert it to appropriate format afterwards. Then the behavior would be as simple as in previous versions, but without confusing beginners by those technical terms, and also without loosing any new functionality for advanced users.

6 Likes

Here are some more discussion points related to syncing masks between selection modes and betwen paint mode and edit mode.
(Going further into this reply I will mostly refer to sculpt/paint mode masks as “selections”)

The syncing of selections is not trivial. There are three ways of going forward with the idea. So when switching selection/object modes:

  1. the selection is fully converted to the current selection type
    (Similar behaviour to edit mode selection modes. Potential loss of selection when switching modes)
  2. the selection is propagated to the current selection type
    (Similar to multires subdiv masks. No loss when switching modes. Sometimes hard to visualise & affect other levels)
  3. the selection is always abstracted from most atomic selection type
    (How selection modes in particle edit mode works. No loss when switching modes. Might be hard to visualise)

Conversion

The first would be the easiest route but might end up being frustrating to use.
For edit mode it might be fine to convert a selection but across ALL modes, this could be too difficult to use.

So just like in the example above when switching edit mode selecton modes, when switching from paint/sculpt mode to edit mode, it would convert your selection completely.
But since selections are meant to be discarded very regularly, this could lead to a sleek, usable and clear design across all modes.

Propagation

The second might sound like the most preferred but could also be the most confusing and least useful.
Try painting a mask on a multires subdiv level 4 (A) and then on on level 1 (B) clear or change the mask.
Going back up to the highest level shows that the mask was only altered on the visible verts from level 1 (C).

We could treat selection modes the same way. So if you switch between sculpt/paint and edit mode, or even change the selection in edit mode, your detailed selection would always be preserved to an extend. It would only become hard to truly clear your selection on the most detailed level.

Abstraction

The third would be the best in my opinion and still not too hard to implement as long as there is an atomic selection element that works for all selection/object modes and can run with good enough performance.
This might be face corner floats for geometry selection, or once a texture is used it would convert the selection to pixel values as the most atomic element.
It might be clearer to then always show the most atomic selection elements in Paint/Sculpt Mode no matter what selection mode is used at the moment.

In the example above:
(A) In Paint Mode, you could already have painted a soft selection on pixels.
Switching to face selection mode would not change the selection. You can from here select faces as well. This will select all pixels that are within those faces.
(B) Switching to Edit Mode would show you an abstracted version of the selection in Paint Mode.
(C) Changing the selection by either adding or removing faces would alter all affected pixels in Paint Mode (D). But the rest of the selection would stay intact.

This idea might break apart if it requires altering the behaviour of other modes like Edit Mode.

@Vyach

have special mode for painting non-color attributes

This is exactly the idea behind “Attribute Paint Mode” which will be developed at a later point.

@jendabek
The name of color attributes is unlikely to change. I do think that the current default when creating a color attribute is the best though. It also ties back to the original name if the default color attributes are “Vertex - Color”.

1 Like

Although I would extend the basic selection and editing tools in Sculpt Mode, I understand that the goal is to avoid duplication of tools between modes.

Transferring the selection from Sculpt to Edit Mode allows you to perform Extrudes, Insets, Holes, Duplicates and Panels. And from Edit Mode to Sculpt, use the Edit Mode selection tools and protect surfaces with sharp corners.

In my opinion, the 1Conversion option is sufficient for most cases, even if there is a loss, and the 3 Propagation is ideal if it does not involve changes in the Edit Mode structure.

Selections with sharp corners and gradients can be made with Option 1 if the selection is first made in Edit Mode and the gradients are added later in Sculpt Mode (not the other way around).

if i were you guys i’d leave the edit mode out of the painting workflow completely. too cumbersome

+1
someone at bf needs to stop allowing the creation of modes in blender at some point. too much, it’s just too much
it’s time to think about unifying the application, not create more rooms

dan2 already replied that having all tools in one mode will result in a crowded UI.

In recent Blender’s history, amount of sculpt tools tripled.
There are 12 sculpt tools in sculpt-dev branch, waiting to be added to sculpt mode.
Current experiments about painting in sculpt mode, in this branch or in master, are only exposing 4 tools : a Paint brush, a Smear brush, Color Filters and Mask by color.
Proposal is adding 7 tools dedicated to painting.

So, compared to current master’s sculpt mode, only using one mode for sculpt&paint would correspond to 51+12+7 = 70 tools in toolbar. That is a crowded toolbar.
In Mode Options tab, in properties, panels about painting slots, masking and painting options will have to be added to Remesh , Symmetry, Sculpt Options panels. That is a crowded Properties tab.

Currently, there is no brush able to sculpt and paint at same time.
There is no benefit to keep tools into same mode. It would not be a lost of time to switch to another mode.
It is better to use one key press to limit UI to paint tools well organized, than to have to scroll toolbar, to have to click to reveal a paint tool in a group or to have to use a shortcut made of a combo of 3 keys to call a tool because there is not enough keys in keyboard for the amount of tools.

It is a long term target to allow users to create their custom mode where they choose what tool to keep or not.
But for the moment, it should be seen as a step into good direction to merge two existing paint modes into a unique one.

8 Likes

If you paint something, that will correspond to an attribute or an image datablock.
You will be reminded to save image before quitting like, now.
Or it will be automatically saved unless you deleted attribute data.

Thanks Ronan.
So creating a texture node will create an attribute which is then decoupled from the node and stay there even if the node is deleted?

Yes. Image Texture node and Attribute node are already a reality in shading nodes.
They are requiring that user is indicating an Image Datablock or an Attribute from attributes list that are existing before node creation and after node removal.

Paint mode proposal or layered textures design are not modifying that part.

2 Likes

Sorry, I still don’t understand - isn’t “Face Corner” what was used in previous Blender versions when creating a vertex color layer? Shouldn’t be this the default value then?
I really think that people will be confused by the new settings (I bet no artist knows what Byte Color / Face Corner means), so they will just confirm the defaults … and then will find out they can’t vertex paint as they are used to.
Thanks for changing the default color to white, I just read your suggestion in blender.chat :+1:
Very excited about the Paint Mode, it is exactly what I need! Can’t wait to test some first versions :slight_smile:
Thank you for all your work.