Dynamic Topology by Nicholas Bishop

@michalis : indeed, in the end that’s what matters. But often in CG, easy to use tools require powerful (though sometimes simple) concepts that require powerful (and often complex) code. :eyebrowlift:

Hi michalis: any serious suggestions on how the behavior of the sculpting tools can be improved are welcome.

It’s often tricky to think of something really concrete that can be done to make them better, but if you can, please do share :slight_smile:

-Nicholas

Sculpt doesn’t work properly on michalis’ kit.

I’ve tried many times to help him get to the bottom of it but am out of ideas.
He won’t file bug reports though and instead just trashes sculpt in any thread…

Basically he gets terrible performance (worse than he got in 2.49) and holding ctrl doesn’t give him the smooth tool… (though hitting ‘s’ will switch to it.)
I’ve offered the usual solutions (have a reasonable base cage, smooth shading, turn off double sided, check vbo us on…

For one thing, in airbrush mode, paints are not done only at the set intervals, but also when you move the mouse. That makes the airbrush mode almost indistinguishable from spacing mode.

Michael W
I solved these problems already, I probably missed to pm you. Great performance up to 30 millions or more on 2.5 latest builds.
I had to refresh preferences LOL, so simple. Having so many branches here, I should expect the conflict.
Performance of tools is excellent, the behavior is not great though. Sculptris remains my favorite. I hope pixologic won’t kill it in the end. The last upgrade triggered bad scenarios.
Now, these aren’t out of topic exactly. Playing with farsthary’s Live Clay in 3dc, dynamic tessellation desperately asks for a different behavior of brushes. Blender tools are closer to these needs than 3dc’s.
The basic tool in this case is the add-reduce geometry tool. Also, an easy and fine tuned density parameter. The smoothing factor when adding or reducing as well. After all it’s a remesher, not so easy to do.
Farsthary did an excellent job on remesher, in fact, better results than in sculptris. Especially near the sensitive symmetry line. Everyone that has sculpted with sculptris some time, will understand what I’m trying to describe here.

Ahh, sweet. Been looking forward to something like this ever since Farsthary showed unlimitedclay, given that Farsthary is busy with his obligations toward 3dcoat here’s hoping Nicholas can continue to develop his implementation and have it included into Blender.

This is a doodle (nothing special) I was doing to test out the dynamic topology. Very, very early stages indeed, but I’m definitely excited about the future of this feature.

http://i197.photobucket.com/albums/aa44/VanRailey/FaceTest.jpg

Nice. How did you get it to not crash long enough to sculpt that? And how did you manage to subdivide it that much? It always crashes for me when I set it to anything lower than 0.06.

Well one tip is to never ever press shift xD. I’ve done that several times by accident.When I try to immediately jump to a high tessellation of .07, it will crash. Although when I gradually increase the levels I was able to reach a point of .001. It was a very high slow down rate at this point, but I was just refining parts of the mesh at this time. Polish for smoothing, snake brush in the place of grab, and clay brush for sculpting.

Here’s yet another doodle but video this time.

great showcase video Rayray!! This already shows quite well how the sculpting can be improved by this feature!

Is there an update Nicholas? Give us some more goodies to play with! :smiley:

Just in case Nicholas is still reading. Let me start by praising your incredible work, not just with this new feature, but with implementing sculpting in general. Makes me feel like a complete idiot for not being able to do stuff like that.

Second if you still like feature suggestions. In my current project I’m using the sculpt feature for some precision terrain modeling and there are some things which could make my life easier. Would it be possible to implement something like a projection paint brush? Where you set a target object (height-plane in my case) and where you paint on the sculpt-mesh that area gets elevated/lowered to the surface of the target mesh. This would allow very precise control over heights/depths of certain sculpted features, which currently is very difficult to do. Just the possibility to set a global height for the leveling tool instead of just the relative option it has now, would be a great help.

My current workaround is to place a transparent plane at the height I’m working on and then while sculpting I can see the area lighten or darken as I go above or below that height. Here’s a screenshot of me working on the riverbanks to illustrate what it looks like:
http://img198.imageshack.us/img198/1489/grebbebergprogresssat29.th.jpg
This does work, but having to go back and forth raising and lowering, takes a lot of time compared to a single stroke of the brush.

Second on my wishlist is a way to increase sculpt performance by masking/hiding/tiling parts of the mesh. I’ve tried alt+b, which will hide the rest of the model from view, but beyond that seems to have no effect whatsoever on sculpting speed.

EDIT
How do I get rid of the unhappy smiley at the top?

You can already used UVs of mesh for texture of brush.
Unwrap your mesh (and use UV project modifier).
Change Brush mapping from Fixed to 3D.
Then, sculpt.

Masking/hiding/tiling was part of Onion branch GSOC, this summer.

@ Nicholas, updating of detail size works good.
But is it possible to add a cut tool in workflow to preserve a detailed zone ?

For the moment, we can sculpt at a certain level of detail on default cube, quit to edit mode and add an other cube primitive with only 6 faces.
If we return in sculpt mode to sculpt the second element of the mesh; first element will be tesselate at same level.

A tool like a mask brush could select a detailed zone to cut the mesh in two pieces. One preserved of tesseletion like if it was separated of current mesh.
One piece that would be retesselate. And finally, the two pieces would be retesselate for merge.
I don’t remember who talk about mesh mixer.

But if dynamic topology could be applied only on one closed mesh element instead of all meshes joined in the mesh object.
It could become more flexible.

rayray, your video is not available here in Germany…sigh, was really interested in seeing this in action.

@JustinBarrett
Gib auf


einfach die Url von dem Video ein, dann kannst Du es auch aus Deutschland Downloaden.

@nicholas bishop
It’s nice to see your progress, the fixes for Smooth and Grab are fantastic.

There is a Problem i run into:
When i sculpt with adaptive Topology, then switch to Object-Mode, back to Sculpt-Mode and re-enable adaptive Topology, all work from this moment is not savable (there is no error message by saving, but by reopening the blend-file, all changes are lost). So it is not possible to start Sculpting and then, for example, add a sphere as a eyeball.

A way to get a smooth mesh out of the sculpt would be nice, i tried it with the remesh-modifier, but can’t get rid of the shape of the tris without a lot of manual smoothing.

Is there room for performance improvements, or is the current possible polycount the end of the road?

Is it possible to merge your adaptive, remesh and skin projekt’s to a new git branch? It would be nice to have all your Sculpt related Stuff in one Blender Build.

Well it’s nothing really special… but if you want to try and check it out… maybe you can view the video here. If not you can let me know.

how about a 64 bit build? :frowning:

I can’t compile the adaptive branch using cmake. Always stuck at

[ 24%] Building C object source/blender/blenlib/CMakeFiles/bf_blenlib.dir/intern/BLI_mempool.c.o
/blender/branches/adaptive/blender/source/blender/blenlib/intern/BLI_mempool.c:79:3: error: redefinition of typedef ‘BLI_mempool’
/blender/branches/adaptive/blender/source/blender/blenlib/BLI_mempool.h:45:28: note: previous declaration of ‘BLI_mempool’ was here
make[2]: *** [source/blender/blenlib/CMakeFiles/bf_blenlib.dir/intern/BLI_mempool.c.o] Error 1
make[1]: *** [source/blender/blenlib/CMakeFiles/bf_blenlib.dir/all] Error 2

What setting should I change to properly compile this branch?

Yeah, for something like sculpting, being able to access all of the memory of my machine would sure help…