2022-7-27 Sculpt/Texture/Paint Module Meeting

Practical Info

This is a weekly video chat meeting for planning and discussion of development related to the sculpting and painting in Blender. Any contributor (developer, UI/UX designer, writer, …) working on these features in Blender is welcome to join and add proposed items to the agenda.

For users and other interested parties, we ask to read the meeting notes instead so that the meeting can remain focused.


  • Joe Eagar
  • Julien Kaspar
  • Daniel Bystedt


Needs Commit

Blender 3.3 Bcon3 has started. New features are now landing in Blender 3.4

High Prio Bugs

Needs to be a priority in the coming weeks for Bledner 3.3 release.
Any remaining color attribute bugs need to be hunted down and reported.

These bugs all rely on PBVH Draw Cleanup to be fixed?:


In Review

Without a maniphest task:

In Progress

  • T96225 PBVH image texture painting implementation
    • Nothing new
  • T98383 Sculpt Mode Cavity Masking
    • Nothing new for now
  • T98593 Paint Mode: Backface Occlusion
    • Joe added occlusion support
    • Julien shared feedback
      • Replace Occlusion with Area Normal auto-masking in pie menu
      • Make Occlusion a sub-setting of view normal auto-masking
      • Implement a way to use limit and falloff settings for occlusion?
    • Joe also suggested that we can add blur propagation steps like in cavity auto-masking
      • This might already give the minimal required results
      • We might want to add that in general since regular view/normal auto-masking can also lead to hard edges
    • Could also use cotangent weights for vertex painting to calculate limit and falloff
    • Texture painting needs its own solution
      • We’ll talk with Brecht and Jeroen if they have suggestions

Next To Do’s

New Tasks

Other Topics

  • Daniel asked when do we expect layered sculpting

    • That feature will rely on the new texture painting code, so that has priority for now
    • Multires will also need work, since layered sculpting will need to use tangent space ptex from multires code
    • All of these improvements will lead into layered sculpting eventually
  • The hair project team is suggesting using geo nodes for custom operators/tools

    • For example:
      • Custom menu operators based on geo node
      • Custom Filter types based on geo nodes
      • Custom brushes based on geo nodes (Insert mesh, Geo/Arrays along stroke, etc)
    • Could be marked as assets and reused
    • Ideas will be discussed further and prototypes
    • Could be tackled with the future brush management project

Awesome work!
I have a question regarding the sculpt layers. Are there already some initial thoughts or a general design? (UX-wise)
For example, the sculpt layers could be implemented as modifiers, shape keys, geometry nodes, or even as a build-in per object option.
Each one of those options introduces different gains and losses.
On another side, I know it was suggested to convert shape keys into geometry nodes, and I myself have played with some sculpt layers in geo node.
Not to mention I have heard somewhere about a caching node for editing/sculpting in the middle of a node tree, which could also become a viable option for Sculpt layers.

So I will reask my original question: Are there already some initial thoughts or general design? (apart from mine :sweat_smile:)

1 Like
1 Like

No there is no clear design on how the sculpt layers should be implemented.
There are various ideas. One of the prominent ones was to expose the shapekeys and sculpt layers as one system in the object data instead of as a modifier.
But this needs to be explored more. Geo nodes would also be nice but perhaps just in a way that geo nodes can access and edit this data.


I’m a new user, so forgive me if I misinterpret. I’m really in favor of everything in creative applications being as intuitive as possible and have a suggestion.

What if when you use sculpt tools on an object with very few polygons, Blender automatically increases the number of polygons to match the sculpting the user wishes to do? When I try to simply sculpt, it doesn’t really do that.

I would imagine two possible approaches:

  1. Increase only the number of polygons in the locally affected area. If this allows your object to be rendered seamlessly when no seam be introduced, this would be preferable.

  2. Increase the total number of polygons of the entire object when necessary, testing for whether the number of polygons has been increased before and if so, whether the area being sculpted now was also affected by previous sculpts or not. If the number of polygons was increased before and the area you sculpt now wasn’t affected by previous sculpts, you don’t have to increase the number of polygons.

The kind of sculpting: both the domain (sculpting area) and range (sculpting shape) should determine the number of minimally necessary polygons.

All in all, for artists you want this program to be as much of a drawing and sculpting program as possible. You don’t want it to be a program for architecture in terms of how you approach it. We shouldn’t have to worry about physics: our mind is our world.

Did you try Dyntopo? :thinking:

Nope. Great suggestion. I think that should be on by default when you sculpt. Is this the right place to ask these questions?

Edit: I don’t think it implements the constraints as I propose them. At some point my sculpt tools become visually unresponsive.

oh no it should be not on by default.
First of all the current implementation has problems with high poly object performance and its destroys the uv map + mesh topology.

At the first glance a program that does things automatic sounds like a great thing but its usually not especially if you consider all the different artstyles and objects you can create with blender.


Okay. That’s clear. Where do I ask my questions best if I have more, when I don’t know whether it’s already a feature or not?

There are several discord communities and forums like blenderartists. For official channels, there’s blender.community and blender.chat. Hope this helps :slight_smile: