On blender multires sculpting


(michalis) #1

So, I start some discussion on this important multires modifier.
It seems that it can work best having to deal with 300 faces to 5 K meshes, more or less, depending on hardware configuration.
Tips to enhance 3dview performance, previously posted on some other topic, can improve performance ~5%, not more.
You can try these meshes below. Both are results of zbrush autopo system. Don’t start having ideas about the quality of such retopo because it’s quite irrelevant.
Two OBJ files, try to add multires modifier. I expect that you’ll go for >3M meshes, testing performance.
One heavier (more than 10K)
one less than 10K


(ng-material) #2

perfomance on second mesh is satisfactory,explain the reason for this?

but for real high res detail,still not great performance,little bit of lag at 6M


(michalis) #3

The second one is still heavy.
A ~2-3K will perform much better.
As you already posted, 2-3K are may be enough for a portrait. What about a nude? We have hands, feet, the body… leading on a ~6-10k base mesh. Most importantly, because we still can achieve a ~5 k mesh, but, we have to subdivide it a lot. >10M probably.


(ng-material) #4

:frowning: I don’t think there is any work around.

  • eventually some new posing tools would need to work with it too.Unless we are going to be doing static heads forever.that’ll need good performance.( even pose on a lower subdivison)

I don’t know who will look at this issue.


(abc123) #5

blender sculpt tool can handle only models with low multires levels

so I think we need a “generate lower multires level” code…

with low multires level blender can handle millions of polys with a mid-hardware


(ng-material) #6

but why is this?


(Sanctuary) #7

I did a test with a head base i modelled long time ago, it’s 490 quads.

In Sculpt mode i add a multires modifier followed by a curve modifier (that is inactive but is there so the multires modifier is not on the bottom of the row and is affected by the reported draw method that would then be slower)
I increase the multires to level 5 , so it’s roughly 500.000 quads.

I can sculpt , the brush strokes are a bit slower than at a lower multires, but it’s usable and workable.

Now if instead of this, i take my 490 quads model, add a subsurf modifier level 2 and apply it, so the head base is 8352 quads.
Then i add a multires and a curve modifier and go sculpt, i increase the multires to level 3, so it is the same +/- 500.000 quads

If i do the brush strokes in the same direction and at the same speed with my mouse, they’re noticably slower and laggier than in the previous situation.

I tried with an applied subsurf level 1 (and so a multires level 4 to reach the +/- 500k faces) and the brush is still not as smooth and so usable as in the original test.

I even tested by simply applying a subsurf to have the head at 500k and then sculpt on it without any multires, and … the brushes are still noticably more laggy/slower than in the 1st test situation.

Link to that specific head model there :
/uploads/default/original/3X/c/b/cb263e4efc540c6648915ef192a8e1be0ac2c9dd.blendd=1349897520

(i saved it with the default factory settings of Blender so you may need to disable the outline selected, etc… again to optimise for sculpt)

for you guys to test if you wish and try with higher multires level as your system can certainly take i (and you probably wouldn’t see how noticable the difference is at only 500k) and see if you obtain the same results in brush stroke smoothness if you go multires with the 490 quads base and if you subdivided it a bit before.


(michalis) #8

@Sanctuary
On the mesh you posted, I can sculpt like in butter, on ~8M faces.
(OSX, 2.64, 2xXeon 16 threads, 12 GB ram, ATI HD 5870)


(Sanctuary) #9

Have you seen a difference in brush strokes performance if you just multires it to 8 millions or if you apply a subsurf on the base first , then multires it to 8 millions ?


(michalis) #10

@abc123,
We already had some discussion on this, in another, collateral thread.
In my wish list, a similar to zbrush, rebuild lower subdivisions.
Or, simpler, store lower subd, delete lower, work on hi mesh easily, and restore lower subd.
It’s a little ridiculous but it can work, I think.

Sorry Sanctuary, we were posting the same time.
No, the lower the base mesh, the better it is. Maybe I could try on 32 M. OOPs LOL
Anyway both were like in butter ~8M.
I posted this, a 300 faces - 5k are the limits. Depended on the hardware. For me, a ~10K is the limit. I’m talking about base meshes going for multires.


(ng-material) #11

hahah I’m lagging at 8M on sanctuary mesh

(win7,intel i7 12threads,32gb ram,560 ti 2gb)

no butter here,more like drying cement :smiley:

what gives?


(Sanctuary) #12

Odd that brush strokes work the same for you michalis, for me there’s a very noticable difference if i multires the base model and sculpt on it or if i first apply a subsurf on it then multires it.

At 500k it’s very workable in the 1st situation and stay usable at 1 million, but in the 2nd situation the brushes are laggy at 500k and are a bad joke to use at 1 million.


(michalis) #13

I edited my last post. Sorry.
@ng
i7 is not dual xeon. And good ATIs under OSX are rocking. Indeed. I have a dual boot system here and the effect is noticeable.

A second thought. Have you monitored the CPU when sculpting? How many threads really work?
I doubt if a dual xeon or an i7 makes any difference.


(ng-material) #14

michalis It is making use of every thread when I monitor.

but why does my system preform so well in every other software package except blender?

I don’t see how it can be a hardware issue.I built my pc specifically for heavy effects simulation inside houdini software.

at 8m it seems inconsistent sometimes it lags,othertimes it is like butter as you say,but mostly lag.


(crazychristina) #15

I tried the 10K mesh with 5 levels of multires (13M+faces) and performance was good. I’ve found that 4 threads are used for sculpting (Core i7, 1st gen, 6GB RAM, GTX280). Didn’t try all the tools though.


(michalis) #16

I posted one, a lot more than 10k, another less than 10K. Try both please.
Threads jump on my CPU monitor. There’re 16 threads, but it seems that 4 -5 are in use. They jump from one thread to another. But still 4-5 max. And not more than 50% of the thread.
Someone should explain why a huge non-multires mesh performs well, on all hardware configurations. I still can’t understand it.


(FreeMind) #17

Windows 7 64bit, 8GB ram, i5-2400 (4Cpu, ~3.1Ghz), NVIDIA Geforce GTX 560.

First model - ~6Fps at 0.8mil polygons
Second model - ~3Fps at 2.4mil polygons

VBO turned on, Double sided turned off.

I really hope this perfomance issue will be fixed someday…


(ng-material) #18

we all do.


(FreeMind) #19

Would be nice if blender didn’t let you subdivide more then your ram capacity…


(michalis) #20

Is it so difficult for blender to be able to reconstruct subdivisions?
When you apply mulltires modifier you can work on lot of faces, smoothly. Why so?

I can export the finished mesh in zbrush. Reconstruct subdivisions there, export the low cage in blender. On top of the hidef mesh. etc etc.

A developer could help us to understand what’s happening.
The only I know is about shrinkwrap modifier. It doesn’t work like it should. The zbrush shrinkwrapper (project) is based on rather complicated algorithms, I think.

VBO on or off, double sided off, outline selected, another disabled modifier or other tips, may help the 3dview but they are irrelevant to this subdivisions issue. In fact I didn’t use them on my tests.