2020-06-15 - Sculpt, Texture & Paint Module

Date: 20200615: 14h AMS time
Participants: Brecht van Lommel, Dalai Felinto, Sergey Sharybin, Pablo Dobarro, Jeroen Bakker

Announcements

Due to time and schedule restriction the proposal is to make Pablo official module coordinator of Sculpt, Paint & Texture. Sergey and Jeroen would still doing the reviewing. There is a doc on the wiki explaining the coordinator role.

Tech dept

  • Refactoring Sculpt Session. During code review it came to attention that we cleanup the naming around Sculpt Session.
    Other topics could emerge but currently aren’t in the way.
  • Undo system could be improved. it will become more of a mess for sculpt vertex colors.
  • Brush management
    • More abstract brush interface
    • Unification of the brush settings between the sculpt mesh modes
  • Dyntopo
    • Performance (not acceptable)
    • Memory
    • Code has a lot of TODOs
  • Partial redrawing (was lost in 2.80)

Dyntopo

There was a long discussion about the future of Dyntopo. We touched the use cases for dyntopo and
what the industry most uses. One issue is that Dyntopo performance isn’t what is expected but the
option to do dyntopo is visible. Some ideas have been discussed including hiding dyntopo in an
experimental menu or add a text when enabling Dyntopo.

Switching between Dyntopo and Voxel Remesh workflow currently uses a lot of memory. Blender can
crash due to this.

One of the bottlenecks is that BMesh is single threaded. No one of has done an in depth analysis
of the bottlenecks. Action: Create a task for listing dyntopo performance bottlenecks.

Volume based sculpting/VR Sculpting

VR Sculpting uses tools and brushes that works with volume based sculpting (OpenVDB). For this
workflow different brushes and tools needs to be designed. We don’t expect any short term
development in this area.

Multi Resolution Sculpting

For Blender 2.90 there are 2 known areas that we want to improve. there is a bug concerning modifiers
on top of multires. The other is applying multires base. There was a discussion to add an automatic
option to apply the base.

Sculpt Vertex Colors

The current patch will go into 2.90 with minor changes. Brecht and Sergey will review the patch.

Brecht will add initial code for generic attributes on geometry for 2.90, and check what we can do short term to avoid the confusion between having multiple vertex paint modes. Proper solution longer term will be to have a generic Attribute Paint mode that can edit many types of attributes, but for the initial release it will probably just be Vertex Paint mode with another name.

16 Likes

It warms my heart to read that Dyntopo is not abandoned, but will get some necessary new :heart:

5 Likes

You guys are pointing out Dyntopo performance issue, which is really good to improve. My question is what are we going to use instead? Remesh? did you discuss about the performance issue that, Remesh has? The very easy one to insert 0.001m in voxel size then remesh. This will freeze Blender for several minutes if not hours. And here is another problem remesh is having hard time to solve, when Dyntopo will do a great job -> https://developer.blender.org/T74385
Here is Yudit showing his workflow how to use Dyntopo efficiently -> https://youtu.be/lfZ8HKUhxak ( in short: turn it off when you don’t need more details)
The point is Dyntopo or remesh are not giving us the performance we need. Making people to decide between Remesh or Dyntopo is like making people to chose between Cycle and Eevee, it is not always about the speed but it is about what the user is after.( good quality, user-friendly, speed, …)
The high poly counts and better performance we can get it with Multires., IMHO our resources, that we don’t have, should focus it on Multires. which lead to the next point " Apply Base".

In the link below BA the user is showing how Apply Base has the undesirable effect to expand the base mesh. When the base is expanded it is making difficult to bake your higher resolution to the lower on an image. And thinking to make this operation automatic is a big problem down the route.

To finish were there any other sculptor in the meeting a part from Pablo? If no then please consider inviting other sculptors because this is how Zbrush has reach the status is now. By working closely with many sculptors.

7 Likes

I’ve also suggested this over at Blender Artists. It would help a lot in pushing Blender towards a more fluid sculpting workflow.

2 Likes

What’s this about limiting VR sculpting to using volume data?! That would be a shockingly bad decision! All my experience with 3dCoat tells me that voxel data is just too memory heavy and performs badly when faced with the level of detail required in modern production. VR sculpting needs to use real meshes and the same brushes as normal sculpt if it’s meant to be a serious tool.

If you can project a brush from the view, then why can’t you project it from the controller?

Agree with you with the 0.001, it always crash my computer to. At the same time I suppose there will always be a limit to how small you can go.

Could we not separate the fingers with pose brush if necessary and then just pose them after sculpt is finish or some workaround.


I’m sure Pablo already know most of there issues…

Problem right now is number of task is > number of devs can handle.

As Brecht had point out in another thread :

“There is already a big cognitive load for developers, in terms the number of tasks to do, and processes they have to understand and follow.”

I think solutions are mostly :

-more money (dev fund), hence more devs
-wait & patience

2 Likes

Wait BMesh is singlethreaded? is there any plan to improve that in term of performance? ie making it multithreaded?

2 Likes

I’m surprised BMesh was used for DynTopo. It’s not designed for enormous amounts of geometry, and we knew from the very beginning that it’s more OO-like nature would cause a performance hit (the rest of the CG industry has run into this too, google “data-oriented programming” for the game industry’s take on this). This is what motivated Geoffry Bantle to write the BLI_mempool library.

2 Likes