This task lists some changes that can be done to improve the workflow in sculpt mode when working on sculpts with multiple objects.
This is not meant to be a multi object sculpt mode design task, just some tweaks and optimizations that can be done on top of the current Sculpt Mode.
The use case of sculpting on a scene with multiple objects of 5M vertices is more common than sculpting on a single mesh of 70M vertices. Brush and drawing performance are usually OK on 5 - 10M vertices meshes, but working with multiple high poly objects is hard due to the constant data recalculation that happens when working with them.
Enter/Exit sculpt mode and switching between objects should be as fast as possible. To improve that we can:
- Multithread the PBVH building
- Tag objects explicitly when they need a PBVH rebuild. Rebuilding introduces a huge amount of lag to the viewport and tools (partially fixed by D6269) that makes sculpt mode hard to use if you are working with multiple high poly objects. If it is possible, SculptSession data (PBVH, mesh connectivity...) should not be recalculated unless it's necessary.
Keymap and Settings
Some settings can be updated to improve the workflow:
- Use click and drag to start the sculpt.brush_stroke operator instead of click. This way we will have available the click, shift + click, ctrl + click and alt + click events for other operators:
- Use a modifier + click event to switch between objects. This should also work when the emulate 3 button mouse option is enabled (which is usually enabled when using a pen tabled without 2 buttons on the pen).
- We can click on a part of the mesh to move the viewport rotation center to that area. Currently you need to start a stroke to change the view rotation center.
- Use other click events for some common use options, like inverting or clearing the mask.
This is an easy change to make in the keymap, but it conflicts with the keymap of the transform tool, so that needs to be solved first.
- Disable lock object modes in the sculpt template and sculpt workspace.
- Make no active objects that are in sculpt mode darker. This should help to differentiate which one is the active object that is going to be affected by the strokes. This should be enabled automatically in Single, Material, Object and Random color modes, but it should not be enabled in Vertex or Texture color mode to avoid affecting the painted colors in a different object.
- Add xray fesnel (D6266) or a similar effect when working with xray enabled in sculpt mode. We may need additional tweaks to the xray shading mode as sculpt mode does not have any extra element to visualize the object you are working on (like the mesh cage in edit mode).