I’ve been working on a few scenes over the past six months or so that have a very, very large number of objects in them. I got used to the fact that working on these scenes meant waiting a couple of minutes between every mouse click for Blender to catch up to where I was. It would spend most of its time completely frozen, and I could only tell when it had un-frozen by moving my mouse around and noticing when the interface was responding to mouseovers again.
Today, I realised that this only happens when I have the outliner open!!! I had never noticed this because I always have the outline open in big scenes. How else can you select exactly what you want? I thought, like all software, it was the 3D window that slowed Blender down, even though I found it was still slow even if I changed the 3D window to a nodes window or something else.
But noooooo, it’s the outliner. That really, really, really sucks. Why would the outliner slow it down so much? As soon as I close it, BANG! Blender is completely responsive again, and I can even add 10 times more objects and still use it perfectly well.
I don’t see how it can be possible, though, to work on a big, complex scene without the outliner. I can leave it closed and only open it when I need it, but it takes maybe 2 minutes to load in my biggest files!
Right now I have that horrible sense of regret you feel when you look back over how long you struggled with something, not knowing that the solution was something very, very simple…
(By the way, my absolute biggest scenes have tens of thousands of objects in them because I’m using placarded halos to replace Blender’s halo shader. This follows on from the discussion I had recently about halos not working in a cubic mapped dome render for Planetarium systems. So I can’t avoid having these extremely large scenes. I’ve even split them up as much as possible to render in passes and put together with compositing nodes for the final render.)
As I read your post, three things came to mind that may speed things up…
Layers.
Always handy for working on different groups of objects. I usually have a couple of layers for the basic meshs, another couple for hooks, lattices and bones, I keep cameras, lights and background items on others. i keep the irrelevent ones turned off while I work.
Ctrl-Select
If you want to drill through objects to select the object behind, click ctrl+RMB. this cycles through items under the pointer in their z-order.
Set Chaining.
Um - Bit tricky to describe, but a brilliant new feature (as of 2.42 I think) See here.
Oh thanks for letting me know about set chaining! How does it work with compositing nodes?
I use layers very, very heavily. I often use close to all 20! But in these scenes, some layers have a huge number of objects on them, and there is no logical reason to break them up. Whatever I have to do to any of them, I have to do to all of them.
Ctrl-Select could indeed come in handy if I can’t use the outliner anymore.
I can’t repeat your problem. In fact mine is slower with two 3D windows open than with one 3D and an Outliner. Maybe a display or Graphics card problem?
How many objects do you have? I think the most I have tried was in the order of 30,000 or might have even been 50,000. The .blend files for the largest ones are 45MB for the shot I’m currently working on. I also have files from when I was working on a simulation of the Big Bang which are over 500MB (I can’t remember how many billboards I have in there, and I don’t feel like opening a file right now to check!)
I’m not sure why it would be a display or graphics card problem. Why would the outliner slow it down but not any other window I’ve had open?
6288, I just duplicated suzanne till it got very slow between Object and Edit mode.
Because the video card all I can think of that would be significantly different on the interface end of things, though I admit I don’t know too much about that stuff.
I haven’t tried any scenes anywhere near as big as the one’s you’re working with, but I did try it with 5 or 6 rigged characters, and there is a definite speed increase and memory / file size decrease.
Appending with the Link button pressed in the “load library” screen will work for objects that don’t need to be animated. For objects that are animated the same method is used (Append / Link) but then proxy objects are also used (CTR-ALT-P).
I’ve also found that the Subsurf modifier is a big performance killer. Turning it off for the intereactive viewport makes a huge difference in speed / responsiveness, especially if there are multiple objects with SubSurfs.
[edit: still sleeping :)] All windows in blender are controlled by Open-GL, even the text displays, so updating that list of 50,000 individual objects will take some time. A high end graphics display card will go along way to help with Open-GL render speeds.
Another method might be to group things together so that they are nested in the Outliner display. If you only have 10 groups displaying your speed should be back up again.
Either using actual Groups (CTR-G) or “pseudo groups” … by parenting objects to empties will have similar effects in the outliner.
With the parenting method, the outliner can be in “All Scenes / Current Scene” mode, which will display all the objects in the scene… both the “collapsed” “Parented trees” and any “orphan objects”.
If groups are used, all objects will have to be assigned to some group, otherwise they won’t show up when the outliner is in Groups mode (only objects in groups will be show) which migh be desirable.
I do have everything in groups, but I haven’t tried the outliner in groups mode! I’ll see how that goes.
Mike_S - I’m sorry I didn’t come back and update that thread about the evening course. The course went very well, and one of my students is a teacher for gifted grade 6/7 children, and she wants me to come and teach them how to use Blender later this year. So that will be a lot of fun :). My only problem with teaching evening classes was that I was utterly exhausted by the end of it all and didn’t want to think about it long enough to come here and keep my thread updated! If I get asked to do some more evening classes I’ll go back to it and explore the subject some more.