Why is Blender updating so slowly?

I have a scene that is bogging blender down badly. Both during playback, selecting objects or moving keyframes. It’s driving me mad.

Now, when all the objects are onscreen (about 1500 objects, each with animated modifiers) this is understandable.

However, if I hide all the animated geometry, the frame rate improves slightly but not by much. I have absolutely nothing onscreen and I’m still getting 2-3 fps. Selection of objects in the outliner is painfully slow as is modifiying keyframes in the dopesheet. Even with NOTHING visible on screen.

Why is this? is blender calculating all of my modifiers per frame even though they are not visible? That seems awfully inefficient. Is there a way to keep blender from calculating hidden geometry? If it’s not the geometry, what’s going on behind the scenes here?

Does anyone have any experience with working with large scenes and dealing with blender slowing down to a crawl? Any tips?

Thanks!

Could you provide a bit more info? For example, hardware (gpu, ram), and which modifiers have you applied? Any modern nvidia card will have problems with opengl in Blender (unless you turn off double-sided lighting for all objects - for some people this helps)

Also, any sub-d modifier should be turned off in the viewport (small eye icon): these kill viewport performance fast, even with relatively low-poly scenes. A work around would be to add a deformer modifier, which rebuilds the VOBs, but anything animated will still bog down you timeline playing.

I also understand that the array modifier with bmesh is very slow, and the devs are working on speeding it up.

Have you tried separating objects into layers, or used Isolate Selected (numpad /)?

Making a quick test with a bunch of hipoly objects with wave modifiers… hiding them doesn’t seem to affect framerate at all, but those other methods give fairly smooth animation. From 1.4 FPS to 14 FPS for a single hipoly Wave-modified object.

Hiding the effect of all Wave modifiers gives me 10 FPS - the same as deleting the modifiers. Hiding the modifier-free hi poly objects then bumps FPS to 24.
So yeah - it seems like at least some modifiers are calculated even though objects are hidden. But Isolate Selected works great when you get used to it, especially combined with Groups and other selection tricks.

I mostly tried this with the official 2.61 version, but it seems to be the same for a recent 2.62 bmesh build.

Hmm… Well, my objects ARE separated into layers. Turning off the layers is how I hide them. I haven’t tried isolate select yet however.

As far as details, each one of the 1500 objects has an array, a curve and a solidify. Plus the scale and visibility channel is animated. Things get really slow when scrubbing the time slider or editing key frames when all are visible, but this is kind of expected for having so many modifiers and animation channels firing off at once.

What confuses me is that when I hide the layers so I can edit maybe ten objects, the dope sheet updates incredibly slow, even for just 10 objects. Even if I turn off all the layers and just animate the camera, my frame rate is around 2-3 frames per second, but better than if I had all the layers on.

Additionally, even with all layers off, simply selected anything in the outliner takes a couple of seconds to actually update.

So the big question here, is what the heck is blender calculating in the background and why? Any chance of getting some developer insight in here? This is a huge workflow problem. I’ll give isolate select a try and see if that helps.

Oh and I’ve been using 2.62 release version. No bmesh

Thanks for the help!

OK, I did some more testing and I made an incorrect statement. It turns out that having the camera only visible, the frame rate goes back to normal. What killed my frame rate was a floor object that had a lattice, solidify and edge split modifier, so that solves that, lol. I’m glad blender is working like it should in the viewport.

However, selections in the outliner remain painfully slow, even with nothing in the viewport. Is it because it’s having to sort through 1500 objects? I wonder if there is a way for blender to more efficiently handle selections. Windows explorer, for example, doesn’t have lag problems like that. Not to compare outliner to explorer, but it should would be awesome if blender’s selection lag could be solved.

An additional note, I just tried Psy-Fi’s new selection speed patch, and it gave a nice selection speed bump to this scene! Excellent!!

Selection speed is still a bit sluggish, but it defintely helped!

Just out of curiosity: what type of video hardware are you using? nvidia or ati/amd?

Im using several types of hardware, actaully.

A mac pro with an ati 5770 card and a windows thinkpad laptop with a quadro 1000m.

Both behave similarly with this scene, meaning a very sluggish outliner and viewport. The selection patch helps, but it still could stand to be faster.