Page MenuHome

Fix T66312: Undo don't restor proper geometry in sculpt mode
ClosedPublic

Authored by Pablo Dobarro (pablodp606) on Sep 25 2019, 4:59 PM.

Details

Summary

This the artifact appears when there is a big difference between the
restored vertex and the no restored one because we are only tagging the
normal to update in one of those vertices. This is the most
straightforward fix. The other solution could be also tagging to update
the neighbor vertices using the topology iterators, but I think that is
going to be much slower.

Diff Detail

Repository
rB Blender
Branch
T66312 (branched from master)
Build Status
Buildable 5096
Build 5096: arc lint + arc unit

Event Timeline

This fixes the topology but not the visual preview of the undo:

anyhow I think we can live with that :)

This optimization was introduced in rB2c2d52c2dea1: Optimize sculpt undo, avoid redundant updates. That commit fixes a more serious issue where GPU buffers for all nodes where updated on undo.

This kind of more fine grained tests to update only a subset of vertices within a node is not important, and so the patch looks fine to me.

But someone should verify that painting on a small part of the mesh and then undoing only does normal and GPU buffer updates for a few nodes and not all of them.

Brecht Van Lommel (brecht) accepted this revision.EditedOct 1 2019, 5:20 PM

Seems to work ok.

Noticed some room for further optimization and added to T68873: Highpoly mesh sculpting performance. We are pushing more nodes for undo that really necessary, which means more memory usage and slower undo.

This revision is now accepted and ready to land.Oct 1 2019, 5:20 PM