Developer Forum

2022-3-16 Sculpt/Texture/Paint Module Meeting

Attendees:

  • Jeroen Bakker
  • Brecht van Lommel
  • Joe Eagar
  • Julien Kaspar

Agenda

  • Comparing 3D Paint brush with Sculpt Brushes
    • What features from Sculpt Mode are important?
    • Which Texture Paint Mode features are important?
  • Masking in Paint Mode
    • What is the most common workflow and use cases for masking?
    • Which features are important for paint mode (Mask brush, face sets, auto masking, selection masking, id-texture, …)
    • Does visualizing masks as contours become necessary now?
  • Performance
    • Would be nice to avoid rebuilding the PBVH on:
      • Mode change (including sculpt->object and object->sculpt).
      • Memfile undo? It’s use is pretty restricted in sculpt mode; e.g. adding modifiers.

Notes

  • 3D Paint Brush prototype

    • All texture types and UDIMs are now supported
    • Auto masking supported but not yet ideal
      • Automasking is cached on vertex level, then converted to polygons, then convert to pixels
      • Different data structure could work better
    • Finalise the design soon based on prototyope
      • PBVH splitting for better performance is still unclear
      • More open questions and bugs
      • Make a final design-proposal ready
    • Then make a patch to continue
      • Rewrite code, make it ready for review
    • Write table of brush setting differences between sculpt, vertex paint, texture paint brush
      • Which will be used for the new paint brush
      • We will mostly base it on sculpt-vertex paint brush
      • Texture Mask from Texture Paint Mode is also important
    • Create a UI/UX-workflow design for picking the target data (texture, color-attribute, material, etc)
      • Maybe Pablo V. has time to help out
  • Should we keep naming of “Masking” and “Hiding”?

    • There was the suggestion to use “Freezing” and “Masking” instead
    • Came to conclusion to remove any inconsistencies within Blender (Example: Mask Modifier)
    • Masking should always mean that something is inaccessible from being edited
    • Hiding means it’s also not visible anymore
    • Freezing is not a term that Blender uses
  • Masking in Paint Mode

    • Is temporary masking on textures like in sculpt mode essential?
      • It will definitely be useful for quick and intuitive masking (Just like automasking is)
      • Face Sets might not be an ideal masking method for texture painting, since jagged low res edges are hard to manage
      • Same issue with vertex based masking
      • Pixel based masking & id maps would be more powerful but need more time to be designed and developed (long term)
      • Use of face sets would be good enough for now
    • Automasking should be supported from the start
    • Painting b/w textures and using them as masks in the material/layers would be good enough for the initial workflow
    • ID maps could be refered to as Pixel Sets, similar to Face Sets
    • “Masking” and “Pixel Sets” should share same UV map and resolution
      • Avoids artifices and performance problems
    • Masks and pixel sets could be part of the layered texture node
      • Needs some bool value to define if it will be recognised as such → Used for operators and overlays
      • Can they then work outside of layered texture nodes?
        • Make it part of layered stack unless there’s good reasons not to
        • Keep it simple that way
      • Needs further UI/UX design
        • Should it be defined in the layered texture node or maybe even the material output?
  • Is it possible to store PBVH in cache to avoid long loading times when switching modes (not just sculpt but also paint mode)

    • This is potentially too much data with the amount of UDIMs and resolution and vertex count
    • We should stress test loading times with lots of UDIMs and resolution. Get a production file to test on.
    • Could we cache this data in memory?
      • Some data when using UDIMs can be stored on disk instead
        • But this would result in hiccups when painting across UDIMs though …
      • Rasterizing all triangles and UDIMs needs to happen in advance
    • Such performance improvements for big production examples can be optimised after the initial features are working well

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.

11 Likes

How would you describe a texture or relief that can be partially hidden temporarily?
Examples:

1 Like

Yes. Mask Modifier should be renamed Hide modifier.

But for the rest, “mask” is used in lots of areas without leading to a lot of confusion. Because implied in very different contexts, it is relatively easy to know that we are not talking about the same thing.

If vertex/face paint mask concepts from Texture Paint mode were moved to Sculpt Mode there would be a problem. But if they are replaced by vertex/face sets concept from Sculpt Mode in Texture Paint mode, there is no problem.

Face or Vertex Based masking are compensating lake of a 3D brush in current paint modes.
But they are also a warranty to work on an area relative to an UV Island or a Vertex Group, as a way to preserve other UV Islands or Vertex Groups.

It would be pertinent to simplify face sets creation from UVMap or Vertex Group.
Currently, Face Set creation is relative to selection done in edit mode or UV Seams.
That means that user has to switch to edit mode to tweak selection or UV Seams to generate desired face sets.
Generating a face set from active Vertex Group or face sets from Active UVMap would be quicker.
Current Face Sets could be stored into a Face Map and loaded from a Face Map.

How would you describe a texture or relief that can be partially hidden temporarily?

@wevon Sorry I don’t understand what you mean. I also don’t see how the links are tied to your question. Can you elaborate?

@RonanDucluzeau Good points. And I totally agree that the creation of face sets and also id maps should eb as fast and intuitive as possible, without excessive mode switching.

2 Likes