# Paint Mode Design Discussion
There are various open questions on the UI/UX of Paint Mode.
These mainly stem from differences in workflow and features between modes (Edit Mode selection, Sculpt Mode face sets and masking).
There is also the big issue of being able to either paint on color attributes (geometry based) or textures (pixel based) and switch betwe them on the fly.
How does this affect the toolset and consistency of Paint Mode?
## Links:
Current technical to-do list: [PBVH image texture painting implementation](https://developer.blender.org/T96225)
## Discussion Points
Paint Mode should fully merge vertex paint mode, texture paint mode and sculpt vertex colors into one mode. What features can be reused from what mode?
How can we make all necessary use cases possible in one Paint Mode?
Since the code of Paint Mode will mostly be based on Sculpt Mode, masking and visibility will be used via sculpt modes vertex based masking and face set. Is that enough?
Also, based on the work by Campbell & Dalai, there will be the possibility to make custom modes in python [T97234](https://developer.blender.org/T97234).
This means that any missing features for Paint Mode that need to be added are extensively also added to Sculpt Mode.
### Masking based on vert/face selection in Edit Mode
- The current Painting Modes are heavily relying on edit mode selection masking
- Do we, or how do we want to support this in Paint Mode?
- We could try to always sync the sculpt mode mask with the edit mode selection
- Or we could further strenghten the masking/face set creation tools in Paint Mode?
- Or do we want both?
- There needs to be some way to predict/control if the masks are vertex based or per face corner (For sharp edges)
### Pixel based masking and ID maps
- Where are they stored? In the object data? Perhaps the texture-layer node or material in general?
- How can we set them up intuitively (Choosing a resolution & UV map)
- How can we switch between geometry and pixel based masking/sets intuitively
- Or should pixel and geoemtry level masks somehow be synched?
- Synching ID maps and face sets is less likely to happen because of the use in different modes
- Should ID maps be instead purely used for setting up mask texture-layers in the material, while face sets are used for hiding and masking in the viewport?
- ID maps usually have the issue that they shouldn't have any visible anti-aliased borders. This often results in users hiding the intersections of id map colors on uv seams. When exporting id maps from Blender to other software it's even a common approach to use material colors. How does it differ to use face sets instead then?
### The Tooling of Paint Mode
- The Toolbar and list of operators are quite different between Edit Mode, Painting Modes and Sculpt Mode. Which do we include in the Paint Mode?
- Edit Mode has strong selection tools/operators. How do we integrate all the necessary ones for Paint Mode so that switching to Edit Mode is not necessary?
- Filters and Gesture Tools of Sculpt Mode are well structurd but lack proper occlusion support. They also lack easy access (Shortcuts, pie menus). How can we support them better?
- Do we need a broader fill toolset instead of using a Filter?(Circle, Box, Lasso, etc to immidately fill)
- How do we intuitively target pixels or color attributes based on UV islands, Face Sets, loose islands, individual faces, vertices? Are these brush/tool settings or broader sub-modes like vert/edge/face selection in edit mode?
### Face sets/ID maps obscuring the surface colorss
- The overlay could also have an automatic visibility option. That way face sets/id maps will only be shown when being editited or needed for picking/expanding/etc
- This would make all operators and tools that rely on face sets only activate on press/drag instead of immidiately
- We could draw face sets as contours, although this could still end up as quite distracting
## Additional Topics
These are outside of the main scope but good to keep in mind.
- How can we integrate the Image Editor better?
- Should the image editor become a 2D counterpart to the 3D viewport? (Live baking of material output or even viewport shading)
- How can geometry or pixel based masks/sets be used in the image editor?
- Pixel art painters will need a way of painting individual pixels more reliably?
- Should these be separate tools to allow for a smoother workflow or can these be tool/brush options?
- How much need/can various oeprators be optimised for this behaviour (Expand/id maps/masks/...)
- Should basic Painting Tools stay in Sculpt Mode or should they fullytransition to Paint Mode?
- How do we handle the current issue with paint mode tools ins culpt mode?
- Shortcut conflicts (Less convinient access)
- Forced viewport shading (Current solution / canvas switcher)