Page MenuHome

Vertex painting in sculpt mode
Confirmed, NormalPublicDESIGN

Description

The sculpt branch has functionality to paint vertex colors in sculpt mode. This lets us reuse brush features and implementation, as well as have brushes that can both displace and paint at the same time.

Colors vs. Attributes

Unlike vertex paint mode, this only works with per-vertex colors, not per-loop (face corner) colors, and that limitation would likely remain. Rough idea to resolve this could be:

  • Sculpt mode would be for more artistic purposes, and only support painting per-vertex color.
  • Vertex Paint becomes Attribute Paint/Edit mode. This would allow visualizing and editing general attributes besides vertex colors, for more technical purposes.
  • Mesh properties could get an Attributes panel listing user-created attributes that could be per-vertex, per-face, per-loop, with different possible data types. Current per-loop colors would just be one specific case.

This is a quite big change though, but aligns with the need for more general attributes for function nodes and volume objects in the future.

Ideally, we could then combine Attribute Paint with Weight Paint mode:

And also combine them in the UI:

This makes the distinction between attributes and vertex paint layers more clear.

Sculpt Mode UI

If painting brushes would be in the same toolbar as sculpting brushes, and if any brush can potentially have settings for both sculpting and painting, the UI can become complicated.

We are missing a design for how to handle this.

Event Timeline

Brecht Van Lommel (brecht) lowered the priority of this task from 90 to Normal.Jul 23 2019, 3:35 PM
Brecht Van Lommel (brecht) created this task.

We should be careful of making the whole UI very complicated to allow for a corner case use-case.

Perhaps a simple way to solve the UI issue, is to:

  • Keep Sculpt and Vertex paint as separate modes, even if they share underlying code and brush system
  • Add a toggle for certain Sculpt tools where it makes sense, to allow sculpting *and* painting simultaneously

We should be careful of making the whole UI very complicated to allow for a corner case use-case.

What you mean by "corner case use-case"?

Vertex painting is actually a very popular way of coloring concept models/sculpts, specially in zbrush. In blender it never became too popular due to the poor performance of the current vertex paint mode. Now, with this new implementation and the much better performance that it has, I believe we'll see a lot of users starting using it more and more.

Also, this vertex painting feature as it is right now, it works as a brush setting, which is great, there's really no need to create several dedicated painting brushes in sculpt mode, only one would be enough for quick access and let the user know that the feature exist. For sculpting and painting at the same time it would be just a matter of enabling that color setting on any brush.

I don't think there's room for complicated UI here? ?

@William Reynish (billreynish) Personally I don't think it needs to add too much clutter to the UI since it's essentially just the 2 colors & color switcher in the topbar + the blend mode in the brush options. The color palletes could also be shown in the tool settings within the brush options.
In the overall picture of brush settings that's very little to add.

And it would make sense to just make these basic vertex painting features fully available in sculpt mode instead of splitting it off into yet another mode.
Even adding not just a paint brush but the average color, smear and blur as well and visually separate them from the usual sculpt brushes wouldn't be out of the ordinary. It would be the same categorisation with the Object Mode Tools in Edit Mode being visually separated from the Edit Mode Tools.

The big problem I see is that the Toolbar is already getting pretty huge, especially with additional brushes and tools from the sculpting branch, but that's a different issue IMO since a couple (or even many) tools can be easily merged.

We could have a field to associate a vertex paint brush to a sculpt brush. This way by default, we could re-use brushes already existing in vertex paint mode.
We could have a toggle in sidebar to switch from sculpt brush settings to vertex paint brush settings like in vertex paint mode.
Or there could be 2 tabs for brushes settings in sculpt mode.
This way, we keep an UI that users are already familiar with and have access to all brush settings.
In tool settings bar and right click menu, we could have what Julien said (only color + blend mode).

What I mean is, sculpting with colors is not the main use-case of sculpt mode. It’s also not what you expect from ‘Sculpt’, making vertex painting harder to find. Having vertex painting separate from sculpt mode is not adding an extra mode, because it’s how it is today.

If we did combine the modes, we’d need to have a way to switch the toolbar so you only see sculpt or paint tools anyway, otherwise the toolbar will require lots of scrolling, making it annoying to use.

For the very rare case where you want to paint AND sculpt, we could have a toggle inside the tool options for that, hiding the color settings by default.

I think it would benefit to embrace the new Sculpt painting system as well as keep the current vertex color painting mode.

For high poly sculpting being able to simultaneously paint colors is an incredibly useful addition.

But the old vertex paint is very useful for creating low-mid poly game assets where you can mask things off by vertices and faces in edit mode.

Requiring the user to go to Sculpt mode to modify vertex colors in the later situation would be a big inconvenience, dealing with the masking system and the possibility that you might be modifying the geo while painting, fooling with brush settings etc.

There is quite the disconnect between say: painting on a model for 3D printing or a turntable render and painting on a low poly model to drive a game shader/hide UV seams in crevasses/etc.

So while they can share similar functions, the use cases between them vary.

I'll add my two cents here: I strongly feel that the vertex paint mode should still be a separate mode since it's use cases are far more diverse than just in some sculpt/artistic applications.

In game engines use of vertex colors is ubiquitous and there should be a mode that allow you to focus on that functionality specifically(pretty much like we have a weight paint mode).

It can be called attribute paint mode or something similar to expand it's functionality beyond the vertex paint itself(like painting vertex groups for example and so on) but it shouldn't be mixed up with sculpt mode that's for sure.

We already have the Vertex Paint as a separated mode in Grease Pencil. My first idea was reuse old Vertex Paint mode, but due the differences and that we have separated modes for Grease Pencil already, I decided to add a new mode for Grease Pencil. Mix Meshes and GPencil in the same code is not good idea, maybe initially looks good, but later the code maintenance is a nightmare.