Proposal for Mesh Optimization Project #88044
This is a proposal to spend time optimizing edit-mode mesh editing as a project for a small team of developers to tackle.
Improve performance of uploading GPU data.
Avoid unnecessary depsgraph copy-on-write calculations in edit-mode.
Normal calculation & face-tessellation
//Neither of these show up as significant compared to the previous two items, however if those are improved, these two calculations will take up a higher percentage of processing time.//
Partial updates (only recalculating modified geometry).
Calculating normals/tessellation as part of uploading data to the GPU.
Various other improvements
Note that these are much lower priority, listing since they would be useful to optimize if there is time.
- Use information about what has changed to store undo data more efficiently
only changes to the selection state or UV's for example.
- Avoid creating an edit-mesh copy for BMesh operators that don't use exception handling.
(we could even rely on the undo-mesh for this).
- Skip mesh conversion for meshes which aren't modified (when multiple objects are in edit-mode).
- Subdivision surface improvements.
- Changes to modifier stack evaluation.
- Mesh undo stack optimizations.
- Many items from #73360 (Fast highpoly mesh editing)
See other tasks:
This is great! Any ideas about optimizing viewport refreshes while editing? This could surely improve feedback response... How is the viewport refresh managed right now?
Changed status from 'Needs Triage' to: 'Confirmed'
No due date set.
No dependencies set.
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?