Blender Git Commit Log

Git Commits -> Revision 67d27db

Revision 67d27db by Nicholas Bishop (master)
December 30, 2012, 18:29 (GMT)
Add dynamic topology support to sculpt mode

* User documentation:

* Code review for this and the other dynamic-topology commits:
Thanks to Sergey for doing code review!

* Add SCULPT_OT_dynamic_topology_toggle operator to enable or disable
dynamic topology mode

* Most brushes need little modification for dynamic topology, but for
some it won't work well and is disabled. This decision is made in

* For brushes that need original data (e.g. grab brush) the topology
is not updated during the stroke, but some changes to original
vertex data is accessed were made since BMesh works a little
differently from mesh/multires. This is abstracted with
SculptOrigVertData and associated functions.

* Smooth brush gets yet another set of functions, for mesh and
multires and dynamic topology and, separetely, masking

* For most brushes, the topology is updated during the stroke right
before the regular brush action takes place. This is handled in

* Exiting sculpt mode also disables dynamic topology

* Sculpt undo works differently with BMesh. Since the contents of
nodes in the PBVH do not remain static during a sculpt session, the
SculptUndoNodes do not correspond with PBVHNodes if dynamic topology
is enabled. Rather, each SculptUndoNode is associated with a

* Sculpt undo gets a few new cases: entering and exiting dynamic
topology does an undo push of all mesh data. Symmetrize will
similarly push a full copy of BMesh data, although it does so
through the BMLog API.

* Undo and redo in dynamic-topology mode will do a full recalculation
of the PBVH.

* Add some documentation to doc/ This could stand to be
expanded a lot more, for now it mostly contains test cases for the
undo system.

* Add SCULPT_OT_optimize operator to recalculate the BVH. The BVH gets
less optimal more quickly with dynamic topology than regular
sculpting. There is no doubt more clever stuff we can do to optimize
it on the fly, but for now this gives the user a nicer way to
recalculate it than toggling modes.

Commit Details:

Full Hash: 67d27db4a1ce276c394fd3fdfab221018d4240ce
SVN Revision: 53442
Parent Commit: 2e69b0c
Lines Changed: +920, -93

By: Miika HämäläinenLast update: Nov-07-2014 14:18 MiikaHweb | 2003-2021