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.
- Upcoming Agenda
- Google Meet
- Time: Wednesday 6pm CET
- Next Meeting: June 15, 2022
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.
Works with new undo changes. Jeroen needs to review it again. -
T98382 Expose Face Sets In Python API
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
Still waiting for D14823 to be committed.
In Progress
-
T98383 Sculpt Mode Cavity Masking
Updated description based on feedback. Built for testing now available to download for D15122
A potential 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 what’s expected. The current behaviour might be confusing.For sculpting brushes the cavity auto-masking 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 potentially 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.
We 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
Julien added related and new tasks to the description. -
T97352 3D texturing: Fix seam bleeding
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
Joe can help out Ramil with fixing the artefacts.
Then this can be approved. -
T97959 Color Filter: Sliding UI
Ramil added basic visual support of the slider UI.
There are still aspects of the implementation 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 visual feedback in UI. That’s because they are always live, incremental effects.
For the Smooth filter type Joe will test with relating the incremental use of filters directly to the mouse position on the screen from left to right. This would make the filters much more predictable and make it possible to reverse and tweak the effect in one operation.
High Priority Bugs
None
Next To Do’s
- Jeroen
-
Julien
- Refine and rewrite design tasks
-
Joe
- T98383 Sculpt Mode Cavity Masking
- T97353 PBVH: Split PBVH Pixels into more nodes.
- Will commit patches that are approved
- Ramil
New Tasks
New design tasks that need to be discussed and refined. Once approved they can be worked on.
-
T98589 Paint Mode: Color Sampling
This task was not discussed in detail. -
T98590 Paint Mode: Eraser Tool
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 available 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 behaviour directly in the color mixing of brushes & tools. This would prevent erasing the RGB values on color attributes and most image types (Including newly created images that aren’t saved yet).
When erasing on pre-multiplied 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
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 image 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
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 auto-masking is way faster to toggle and potentially 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
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
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 management 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 attributes as transparency 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:
- Topology
- Face Sets
- Boundary Boundary
- Face Set Boundary
- Occlusion (Area)
- Occlusion (View)
- Cavity
- (Invert Cavity)
- Should be removed since we shouldn’t include sub toggles of auto-masking options.
- Alpha Channel
- Should not be an auto-masking setting and instead 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.