# 2022-6-8 Sculpt/Texture/Paint Module Meeting
## Attendees
- Julien Kaspar (artist)
- Ramil Roosileht (dev)
- Jeroen Bakker (dev)
- Joe Eagar (dev)
- Daniel Bystedt (artist)
## Announcements
--
## Agenda
### In Review
- [⚓ T97353 PBVH: Split PBVH Pixels into more nodes.](https://developer.blender.org/T97353)
Works with new undo changes. Jeroen needs to review it again.
- [⚓ T98382 Expose Face Sets In Python API](https://developer.blender.org/T98382)
Campbell added some notes. We settled on naming it in the code "face sets". Joe will address the notes and update the patch.
- [⚓ T97106 Options to convert color attributes to other domain and data types](https://developer.blender.org/T97106)
Still waiting for [D14823](https://developer.blender.org/D14823) to be commited.
### In Progress
- [⚓ T98383 Sculpt Mode Cavity Masking](https://developer.blender.org/T98383)
Updated description based on feedback. Built for testing now availbe to download for [D15122](https://builder.blender.org/download/patch/)
A potentual issue that was raised:
The "Use Curve" setting is currently not inverted when inverted cavity is toggled
Here it would be good to gather more feedback from artists of whats expecetd. The current behaviour might be confusing.
For sculpting brushes the cavity automasking is hard to predict. This is not as much a problem with painting but sculpting brushes depend much more on small nuances in the mask. Feedback on how drastically needed a visual auto-mask is will be important here.
Previewing the cavity auto-mask with an overlay would potentually not be a target though.
It would be far too taxing in the viewport to show the entire cavity mask. While using it the cavity mask is only generated under the brush cursor once using a brush/tool.
Wwe could preview it within the brush cursor radius though. This could help but is not something that would be intuitive to leave enabled all the time.
It's also only visible while hovering the cursor over the mesh and not while changing the settings.
This needs more discussion and prototyping.
For material creation the cavity mask requirements are much higher. Here we should wait for baking and the layered textures design. The auto-masking features are meant as a super fast and intuitive alternative to a strict baking/masking workflow.
The other alternative right now is to use the Dirty Mask/Colors operators.
- [⚓ T96225 PBVH image texture painting implementation](https://developer.blender.org/T96225)
Julien added related and new tasks to the description.
- [⚓ T97352 3D texturing: Fix seam bleeding](https://developer.blender.org/T97352)
Development goes slowly due to the Blender release and related tasks. Currently working on being able to paint on a cube. After that we can enhance it to suzanne, but keep track on the quality along the way.
- [⚓ T97961 Tip Roundness: Radius improvement](https://developer.blender.org/T97961)
Joe can help out Ramil with fixing the artefacts.
Then this can be approved.
- [⚓ T97959 Color Filter: Sliding UI](https://developer.blender.org/T97959)
Ramil added basic visual support of the slider UI.
There are still aspects of the implemnetation missing like custom values and enabling overshoot.
The question was raised on how we should handle non-linear sliders like Smooth and cloth filters.
For cloth filters we agreed that we should not use sliders and instead other visal feedback in UI. That's because they are always live, incremental effects.
For the Smooth filter type Joe will test with relating the incremtal use of filters directly to the mouse posiion on the screen from left to right. This would make the filters much more predicatble and make it possible to reverse and tweak the effect in one operation.
### High Prio Bugs
None
### Next To Do's
* **Jeroen**
* [T97352 3D texturing: Fix seam bleeding](https://developer.blender.org/T97352)
* **Julien**
* Refine and rewrite design tasks
* **Joe**
* [T98383 Sculpt Mode Cavity Masking](https://developer.blender.org/T98383)
* [T97353 PBVH: Split PBVH Pixels into more nodes.](https://developer.blender.org/T97353)
* Will commit patches that are approved
* **Ramil**
* [T97959 Color Filter: Sliding UI](https://developer.blender.org/T97959)
### New Tasks
New design tasks that need to be discussed and refined. Once approved they can be worked on.
- [⚓ T98589 Paint Mode: Color Sampling](https://developer.blender.org/T98589)
This task was not discussed in detail.
- [⚓ T98590 Paint Mode: Eraser Tool](https://developer.blender.org/T98590)
Since erasing will sometimes end as a destructive action to all RGBA channels, do we hide option to add alpha from the tool?
If so, we need to make this availible another way then
This would likely be by painting RGBA channels directly. This would also improve game dev workflows.
(More about this in the Alpha Auto-Masking part)
But we need to be aware of use cases to still add/remove alpha. For gamedev the alpha channel is often used for other purposes than transparency.
One possible fix: We can prevent destructive erasing by changing the beahviour directly in the color mixing of brushes & tools. This would prevent erasing the RGB values on color atributes and most image types (Including newly created images that aren't saved yet).
When erasing on premultiplied images on the other hand, we could still allow erasing alpha channel in an expected way within Blender. Afterwards when saving the file it would cause data loss that should've happened already while erasing.
Here we must show a warning message to the user, which gives them the chance to save to another image format or ways to export before saving.
- [⚓ T98592 Paint Mode: Alpha Auto-Masking](https://developer.blender.org/T98592)
It was pointed out that the use case for this feature is actually more wide than a simple alpha auto-mask. We could make the feature for any channel.
This would solve game-dev use cases of painting individual channels too.
This should then also affect color sampling.
Going for an auto-mask option would currently also break compatibility with image editor. This puts extra pressure on updating iamge editor before Paint Mode release.
We agreed it should still be a mode wide setting as opposed to per texture/color attribute or per brush.
For the UI. Instead of hiding it in the options panel it could be made very visible in the header or in the brush settings (with a toggle to use it unified for all tools and brushes in the scene).
The exact design still needs to be developed further.
- [⚓ T98593 Paint Mode: Backface Occlusion](https://developer.blender.org/T98593)
We agreed that this makes sense as a mode-wide auto-mask option.
Joe already implemented this in sculpt-dev. It just requires a scene wide setting for the occlusion falloff.
Both area and view normal occlusion are good to implement since they benefit very different brushes.
View normal occlusion is more useful for projection painting while area normal will be more used for sculpting brushes.
This new feature could completely replace "Front Faces Only".Occlusion automasking is way faster to toggle and potentually doesn't have performance downsides compared to Front-Faces Only.
This feature should then be the new basis for the Paint Mode occlusion settings.
- [⚓ T98601 Paint Mode: Clone Brush](https://developer.blender.org/T98601)
Screen-space would be the easiest way to do the target picking. A 3D space clone target picking is possible too but should not be the initial goal.
- [⚓ T98607 Pixel Brush Tool](https://developer.blender.org/T98607)
A new brush tool by Juanfran, mainly intended for the image editor. A 3D viewport implementation is still unclear but possible. This will be further discussed online with Juanfran.
### Other Topics
#### Erase fill
There is currently not way of erasing all unmasked colors. We can add a new color filter fill type to "Erase". This is definitely needed functionality and should get a task.
#### Color managemnt of color attributes
Alpha values are not displayed properly when shown as a direct b/w output. This is a known issue though.
If we try to predict how the current data should be displayed we might end up making color drawing confusing and inconsistent. Displaying linear colors properly is a bigger topic to officially support.
For now we can optionally show alpha channels on color attrbiutes as tranparency in workbench (Just like image textures).For that we need to check when this would be useful though.
#### Elastic deform currently uses the wrong math
Joe was able to confirm the that current Elastic tools are not working correctly by Kelvinlet deformations.
He will track down the issue later.
#### Too many auto-masking features?
The current UI is restricted to 8 entries per pie menu.
We need to be aware of this limitation and work with it or propose an alternative design for the UI.
Current and planned entries for auto-masking include:
1. Topology
2. Face Sets
3. Boundary Boundary
4. Face Set Boundary
5. Occlusion (Area)
6. Occlusion (View)
7. Cavity
8. (Invert Cavity)
- Should be removed since we shouldn't include sub toggles of auto-masking options.
9. Alpha Channel
- Should not be an automasking setting and isntead exposed somewhere else.
For now we agree to try to keep it to 8 options.
But we should be aware of this in the future.