Page MenuHome

New sculpting tools
Open, NormalPublic

"Love" token, awarded by MetinSeven."Love" token, awarded by CMC."Love" token, awarded by Artsolit."Love" token, awarded by bnzs."Love" token, awarded by shomyshomy."Love" token, awarded by d.viagi."Love" token, awarded by astrand130."Love" token, awarded by jfmatheu."Love" token, awarded by brilliant_ape."Like" token, awarded by YAFU."Love" token, awarded by julperado."Love" token, awarded by xrg."Love" token, awarded by Tonatiuh."Love" token, awarded by erickblender.
Assigned To
Authored By


The sculpt branch has new tools for masking, filtering, transforming, etc. This task is about merging those tools to master, and issues to solve before that is possible.

Mesh Data Structures

The main issue right now is that they only work for regular meshes, not multires and dyntopo.

For dyntopo using BMesh, some abstraction can be added in the code mainly to access neighboring vertices, and storing temporary per-vertex data. This data can be stored in arrays in SculptSession, and BM_elem_index_get(v) can be used for indexing into the arrays. This data does not need to preserved when changing topology, so we can just remove then to avoid accessing invalid data.

For multires things are more complicated. What we propose to do here instead is to remove the multires memory optimization which avoids creating a full Mesh and keeps data in grids in sculpt mode. The real-world advantages of this are questionable in the current architecture anyway. Instead there would just be a Mesh and BMesh for the sculpting and drawing code to deal with, and data would be synced to/from grids when exiting/entering sculpt mode. This will hopefully lead to much simplified code, but we have to verify that performance and memory usage remains acceptable.


Differential Revisions
D5352: Sculpt mesh abstraction API
To Do

Event Timeline

Brecht Van Lommel (brecht) lowered the priority of this task from Needs Triage by Developer to Normal.Jul 23 2019, 3:07 PM
Brecht Van Lommel (brecht) created this task.

Rewriting multires is not related to this task, let's stay on topic here.

I made the first version of the API and the mask by normal operator seems to be working fine with dyntopo. I'm going to port the mask expand operator and the smooth mesh filter. If those two work, I think it's safe to say that every tool in the sculpt branch is going to work.

Everything seems to be working just fine. I will prepare the final patch to be reviewed as soon as possible. .