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
-
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.
-
Full animation system support - insert keyframes for rotation, location, scale, full skeletal animation rigging etc
-
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.
-
‘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.
-
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