Feedback on sculpting tools and algorithms

Hi all,

I’m mentoring the ‘google summer of code’ project to improve Blenders sculpting tools.

Some videos on Blender sculpting

I thought it might be worthwhile to pick the brains of the folks here, since you might be able to provide good ideas and feedback on the technical side. (The more smart folk giving insights, ideas, and feedback, the faster the tools can improve)

Right now on modest hardware you can sculpt 25 million quads (multires mesh) in a single mesh - ie on an iMac with 2GB ram I was able to achieve such results (I did encounter heavy swapping when changing multires levels, since our routine for subdividing is not very memory efficient). On an 8GB computer you can sculpt 100 million quads in a single mesh (confirmed by multiple users), and should be able to achieve 300 million+ quads for 24GB (getting confirmation on this soon).

That said we don’t have mesh hiding functionality enabled right now, so the practical limit due to graphics card performance is roughly 45 million quads in a single item. Also level switching up and down for higher levels needs optimization.

Currently we have openmp disabled for sculpting brushes, and for multires and subsurf level subdividing - we were having performance issues on some computers (x10 slow down) with openmp, even though it can provide substantial speed gains as well (we are investigating the performance issues). We will probably reenable openmp for meshes that are larger that 1 million quads.

Another performance issue is that we have disabled caching of the texture brush (will be reenabled in the following weeks).

Some fun things about Blender sculpting versus sculpting in other sculpting packages

  1. Quad view - in the NKey panel you can enable a quad view with front, side, top and camera view. Or just setup multiple view ports however you like.

  2. Full animation system support - insert keyframes for rotation, location, scale, full skeletal animation rigging etc

  3. Modifier stack support - deform modifiers can be used in the modifier stack before the multiresolution mesh modifier - that means that full skeletal deformation, cloth deformer, and numerous other deformers can be used in conjunction with the sculpting system. Also you can apply deform modifiers to multiresolution meshes that are after the multires modifier to the multires modifier. Ie using a displacement map to add a noise texture.

  4. ‘Unlimited clay’ - sculpting mesh detail can be increased dynamically while sculpting - note that this feature is extremely limited at this point, more of a toy than a real tool, a patch for improving it should be included soon.

  5. node based texturing; and standard texturing system can be used to generate sculpt brushes.

Limitations

These are some known issues.

First off the defaults for brushes stink (although the test blend file I provide below I’ve set reasonable brush defaults i think), we are getting artists feedback from Blender artists on what sane default should be. The UI for brushes is also rather gross - part of this is due to exposing stuff that is needed for artists to explore what sane defaults are, other is that UI design elements for certain things are on the todo list and haven’t been created yet.

You can see some of the current UI proposals in the wiki linked below.

Certain defaults lead to poor performance - ie doubled sided faces; flat shading; perspective mode; among others. Also the automated selection for drawing mode often picks a slow method. I’ll provide some blends that are set up for maximum performance, although you will still need to pick the correct draw mode in the preferences.

Also there are a number of features on the todo list - masking, mesh hiding, layers. Masking is already available in a different (multires) development branch - we will provide a branch for testing with both the sculpt tool improvements and multires related improvements. The issue with grab brush when overlaps occur will be addressed this coming week, as will the speed of the smoothing algorithm. Also the code is a bit messy and a lot of code duplication going on - my student is planning to do some clean up at the end of the coming week.

For those interested in playing with the code themselves, you can check out the sculpt branch from svn here

https://svn.blender.org/svnroot/bf-blender/branches/soc-2010-jwilkins/

the sculpt tools themselves are located in the folder

blender\source\blender\editors\sculpt_paint

with most of the UI for the sculpt toolbar in

blender\release\scripts\ui\space_view3d_toolbar.py

The building directions for various platforms here

http://wiki.blender.org/index.php/Dev:2.5/Doc/Building_Blender

Since this is a branch, and not the head blender, we are tracking bugs in our development wiki page

http://wiki.blender.org/index.php/User:Jwilkins/GSoC2010/SculptFeedback

In the resources section I’ve included a link to a blend file with all of the optimizations turned on to get good speed.

http://wiki.blender.org/index.php/User:Jwilkins/GSoC2010/SculptFeedback#test_meshes

For those not interested in doing their own builds you can download a sculpt test build from here, look for a build with jwilkins in the name.

http://www.graphicall.org/builds/

Thanks,

and let me know if there are any questions.

Tom Musgrove
LetterRip

Hi Tom,

if possible take a look at Sculptris and use it as a good reference for how the tools can be well improved. I’m starting to see a lot of professionals use Sculptris instead of Zbrush for their initial modelling phase because it’s much easier/faster and then work in Zbrush for the detail pass (because Sculptris don’t have all the fancy features yet).

Instead of improving the amount of polygons that can be used I think it’s better to focus on how and where those polygons are used, like Sculptris does with dynamic tesselation. :):

How is the UI remapping options in Blender, until that is improved it’s really hard to give any real feedback as the bar for entry is still fairly sharp.

I know I want to use Blender, I’ve used it in the past in a project, and until there are some more options on how the tools work and are laid out to be more familiar to people using other programs I think you’ll have a harder time getting people to try it out.

The videos look really good though, do you guys have something equivalent to poly paint? where you can paint the vertex color of the object, and then bake it into it’s UVs?

Hi all,

thanks for the replys.

Denny,

if possible take a look at Sculptris and use it as a good reference for how the tools can be well improved. I’m starting to see a lot of professionals use Sculptris instead of Zbrush for their initial modelling phase because it’s much easier/faster and then work in Zbrush for the detail pass (because Sculptris don’t have all the fancy features yet).

Instead of improving the amount of polygons that can be used I think it’s better to focus on how and where those polygons are used, like Sculptris does with dynamic tesselation.

We have both dynamic tesselation and multiresolution mesh.

We actually had dynamic tesselation five years ago or so? But we dropped it when the multiresolution mesh tools came along.

Now a new implementation is being done in C.

(note that his latest patch is not in the sculpt brush branch).

Our brush quality in the sculpt tool branch is now fairly comparable to brush quality in sculptris.

Also in a different branch is taking place layers, masking, and a few other goodies - for instance here is multiple layer masking that should be committed to the multires branch in a few days

IKruel,

How is the UI remapping options in Blender, until that is improved it’s really hard to give any real feedback as the bar for entry is still fairly sharp.

UI remapping is working quite well. We have presets for basic Maya navigation and other forums have created presets for various other tools.

The videos look really good though, do you guys have something equivalent to poly paint? where you can paint the vertex color of the object, and then bake it into it’s UVs?

We have vertex painting, but it is not propogated up/down the multires hierarchy right now (I think that is covered as part of the multires gsoc which is doing layers, etc.).

We also have texture painting in the 3D view, and you can project the texture and then paint it with photoshop, gimp etc. and then reproject it to the view.

The workflow for texture painting is rather attrocious, but I hope to have it fixed before 2.5 or at least by the release following.

Another GSoC project is focused purely on painting related tools and workflow.

Thanks for the response, I just got the 2.5 alpha. I downloaded the Maya presets, attempted to import it, and no changes. Then I closed Blender with the preset window open and now every time I open blender up again it instantly crashes. I think I’ll have to wait for a more stable release of 2.5.

I’m really rooting for Blender, because Autodesk has kind of let me down in the latest releases, their latest big features are simply integrations of other package’s features into each other. And there is a ton of broken stuff still in there.

I would love to get involved with making Blender a bit more production oriented, is there a mailing list or something that I can join? My past impressions were that Blender folks weren’t really interested in making it like the other professional packages and if people wanted to use it, they have to suck it up and learn it. The fact that you’re here asking for feedback makes me think that has changed. Is that true?

Let me know what I can do to help, I wouldn’t mind going into the code and fixing stuff myself, but I’m not familiar with the codebase of the processes.

  • Luiz

Ikruel,

Thanks for the response, I just got the 2.5 alpha. I downloaded the Maya presets, attempted to import it, and no changes. Then I closed Blender with the preset window open and now every time I open blender up again it instantly crashes. I think I’ll have to wait for a more stable release of 2.5.

Hi 2.5alpha is ancient - try graphicall.org builds for more recent releases. Builds that presets work with have the maya presets bundled by default.

The beta will be out in about two weeks. The alpha build is older than the commit to allow using presets if I recall correctly so trying to use them with the older build probably fubared it :slight_smile:

http://www.graphicall.org/builds/

Note that the improved sculpt tools are not in the head branch, I’m getting approval for merging them end of this coming week. (There are sculpt tools in the head branch but the quality and usability difference between head and my branch for brushes are leaps and bounds different).

So if you want to give the sculpting tools a try you’ll need to either build from the svn repository linked above, or use a build from graphical that mentions ‘sculpt’ in the name and has a recent build date.

I would love to get involved with making Blender a bit more production oriented, is there a mailing list or something that I can join?

bf-committers is our development mailing list, it is fairly quiet right now, since we are focused on getting the beta out the door.

http://lists.blender.org/mailman/listinfo/bf-committers

We have a self imposed deadline for the final release for around Siggraph.

My past impressions were that Blender folks weren’t really interested in making it like the other professional packages and if people wanted to use it, they have to suck it up and learn it. The fact that you’re here asking for feedback makes me think that has changed. Is that true?

The development team has long recognized that being able to configure Blender to the way you work, and not having to configure yourself to the way Blender works is important to users. Unfortunately the changes needed to make customization and UI improvements possible were so wide ranging (ie touching pretty much every single function within blender related to a tool or the UI) that it just wasn’t possible till recently. It will have taken 5 or 6 full man years of work to make this switch over once all is said and done.

While making Blender like other packages for the sake of being like other packages isn’t of interest - we will try and integrate the best ideas, and we will try and make Blender flexible enough that users can customize it to their needs and workflow.

Let me know what I can do to help, I wouldn’t mind going into the code and fixing stuff myself, but I’m not familiar with the codebase of the processes.

You can dive in to whatever area of code interests you.

I’ve created a ‘developers quick start guide’ (in progress)

http://wiki.blender.org/index.php/Dev:2.5/Doc/Developers_Quickstart

Sweet,

I got the build from graphicall and it’s much better =)

the maya hotkeys help a lot, there’s some still missing, but overall is pretty good. (Is there a way to transform freely in 3d? as in not locked to an axis?)

But on the sculpting tools in particular:

I’m impressed, it’s pretty good, specially for a free program. I didn’t play too much with it yet because I want to save real feedback when I try it with a tablet but off the bat here’s few notes:

  • It would be nice to have the smooth brush on a shortcut similar how deflating is on Shift, Zbrush (and now Maya) have the invert brush on Ctrl and the Smooth on Shift, this helps tremendously while quickly sculpting

  • Context menus, I didn’t notice any while clicking with the right mouse button or holding down space, is it on another key? It would be awesome to have a customizable side menu depending on what mode are you on. (I couldn’t find where to change resolution)

  • On a similar vein, I would like to see some tools inside of the sculpt menu like subdividing, I had to switch back and forward to the mesh edit to add resolution to my cube =)

Really awesome work though, I like where Blender is headed and while you guys are trying to do a LOT, I think it’s doable and I’d like to help =) Give the game devs some love too =)

I’m starting up some personal projects and I might try to do in Blender now, 2 birds with one stone haha

Hi,

first off please download the test blend from here

http://wiki.blender.org/uploads/1/19/Sculpt_test_objects.blend

It has 3 test objects, and multires on the right adds subdivision surface levels (multires is a modifier) that you can go up and down levels. Each object is on a different layer (layers are the two rows of squares on the bottom header)

It has better brush presets for the sculpt branch (the top panel with little paint brushes are presets, the lower panel are the ‘tools’ presets have a strength, size, and options that are tied to a particular brush preset).

As for UI related stuff - that is on the todo for this week.

the maya hotkeys help a lot, there’s some still missing, but overall is pretty good. (Is there a way to transform freely in 3d? as in not locked to an axis?)

Yep go to the file>preferences and change settings in interface/editing/input. You can customize all sorts of stuff in there.

Really awesome work though, I like where Blender is headed and while you guys are trying to do a LOT, I think it’s doable and I’d like to help =) Give the game devs some love too =)

You might find of interest that we are integrating recast (navmesh generation), detour (pathfinding), and cane (steering) as another of the GSoC projects. So you can use Blender as a complete level design, prototyping and testing tool.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.