Dynamic topology branch available

Quick test of dynamic topology. The original mesh was a cube (12 triangles.)

I’ve pushed the dyntopo branch to my github repository, so you can give it a try if you’d like. The code is only about two days old now, so be warned that it’s at a very incomplete stage.

There’s no UI for dynamic topology yet, so as soon as you go into sculpt mode (on a non-multires mesh) it’s active. At some point of course, a switch will be added so you can choose between regular sculpting and dynamic topology.

The detail size is hardcoded at 0.1 BU right now, so you can increase or decrease the mesh density by scaling up or down in edit mode.

Note also that plenty of brushes and features don’t work yet, notably the smooth and grab brushes, as well as undo.

Supporting undo will likely be the biggest challenge for dynamic topology; it’s not at all clear how to store undo data without copying the entire mesh (which would cripple performance.)

14 thoughts on “Dynamic topology branch available”

  1. Sweet! :)

    Regarding the undo, would it be feasable to simply keep a log of the user’s brush strokes, then “invert” them for undo? For example; the user drags 2.0 BU to the right, so undo drags those vertices/region to the left. Using a “vertex/mesh region” type of thing, or something?

    I suppose that still has a lot of complexity when more vertices are added and such. Don’t laugh at me! :P lol

  2. Possibly; user dragged in *this* direction, and *this many* vertices were added – so now we do the opposite?

    You have my permission to tell me if it’s a rediculous idea, I’ve only really just started getting into coding for Blender a week ago. :P

  3. Would it not work as a modifier? holding it’s own extra verts data like multires? It would also give you freedom to use custom storage methods. If you use a stepID and each vert node keeps it’s stepID to determine if the node exists for the current step, undo would be ignore a node with stepID > curStepID

  4. Wow, nice to see progress again on Adaptive Topology. Is it only my imagination or does the Topology look a lot cleaner then in previews Versions?

    I played a bit around with it and it looks like the Smooth Brush is working.

    Here is a Linux 32 bit Build at graphicall:

    1. Thank you for the build. However, I receive the following error:

      error while loading shared libraries: libpython3.2mu.so.1.0: wrong ELF class: ELFCLASS64

      Any suggestions?

    1. Multires sculpting does use displacement maps, but that wouldn’t work so well for dynamic topology sculpting. Adaptive tessellation is really a different subject than dynamic topology. Adaptive tessellation is just simplification/subdivision of a base mesh, whereas the dynamic topology sculpting is about changing the base mesh itself. It’s not just a display setting like the multires level; it’s entirely new geometry.

  5. Great to see work being done on this…

    Just an idea that came to mind while reading the “undo issue”… Perhaps, after each stroke, save the index/position of each affected original vertex (the ones before the stroke) and the indices of the newly generated vertices (the ones generated after the stroke).
    When undoing, delete the newly generated vertices, taking the saved indices, and bring back the saved original vertices, the original ones affected by the stroke.

    Cheers, and keep it up ;)

Leave a Reply

Your email address will not be published. Required fields are marked *